1.簡單會話
> x<-c(1,2,4)
> x
[1] 1 2 4
R語言的標准賦值運算符是<-。也可以用=,不過不建議用它,有些情況會失靈。其中c表示連接(concatenate)
> q<-c(x,x,8)
> q
[1] 1 2 4 1 2 4 8
取q中的某個元素,R下標是從1開始的。
> q[2]
[1] 2
利用現有函數求均值,方差
mean(q)
sd(q)#“#”為注釋符號
2.函數入門:
創建一個計算計數個數的函數
> oddcount<-function(x){
k<-0
for(n in x){
if(n%%2 ==1) k<-k+1
}
return(k)
}
調用函數oddcount(c(1,2,3,-1,5))
> oddcount(c(1,2,3,-1,5))
[1] 4
3.R語言中的數據結構
-
向量
R語言中,把標量或單個數字,作為一個一元向量。很多操作,函數都是針對向量的。
x<-c(5,1,13,2)
> x
[1] 5 1 13 2
length(x)#返回向量x的長度
[1] 4mode(x)#返回向量的類型
[1] "numeric"
R的一個向量的所有元素都應該屬於同一類數據類型,否則R會進行強制轉換
> v<-c(4,67,"abc")
> v
[1] "4" "67" "abc"
R允許如下創造空向量,也允許你向任意的下標賦值。
> a<-vector()
> a
logical(0)
> a[3]=1
> a
[1] NA NA 1
> a[10]=32
> a
[1] NA NA 1 NA NA NA NA NA NA 32
-
字符串
> wq<-c("dasda","dasda","q","12")#生成字符串向量
> wq
[1] "dasda" "dasda" "q" "12"
> mode(wq)
[1] "character"
> u<-paste('a','b','c')#連接字符串
> u
[1] "a b c"
> v<-strsplit(u,"")#拆分字符串
> v
[[1]]
[1] "a" " " "b" " " "c"
>
-
矩陣
rbind,把兩個行向量結合為一個矩陣,(另一個函數式cbind(),把若干個列結合成一個矩陣)。
> m<-rbind(c(1,4),c(2,2))#rbind=row band(按行綁定)
>
> m
[,1] [,2]
[1,] 1 4
[2,] 2 2
矩陣乘法符號 %*%
> m%*%c(1,1)
[,1]
[1,] 5
[2,] 4
提取矩陣的行,列:
> m[,2]#提取矩陣的列
[1] 4 2
> m[1,]#提取矩陣的行
[1] 1 4
-
列表
與向量不同,列表中各項內容可以屬於不同的數據類型。用$訪問列表中的元素
> x<-list(u=2,v="ac")
> x
$u
[1] 2$v
[1] "ac"> x$u#提取列表中的數據
[1] 2
-
數據框
一個典型的數據集包含多種不同類型的數據,例如一個員工數據集里有字符串(員工姓名),數字(工資)等。這時候不能用矩陣,因為他混合了多種數據類型,應該用數據框。數據框實際上就列表。
> d<-data.frame(list(kids=c('ross','joey'),ages=c(12,13)))#定義數據框
> d
kids ages
1 ross 12
2 joey 13
> d$ages
[1] 12 13
-
類
R語言是一門面向對象的編程語言,對象是類的實例。數據存儲在對象中,在R中,全部都是對象,從簡單的數字到函數,或者復雜的數據結構。每一個對象都會屬於一個類(class).
R有許多提前定義好的類和與之相關的函數。我們可以以此為基礎創造新的類。
類需要用在泛型函數中。例如plot()就是一個泛型函數,它和根據參數對象來畫出適合的圖像(概念有點類似於c++的重載,多態性(polymorphism))
4獲取幫助
-
help(plot)#在線獲得plot函數的幫助
-
example(plot)#獲得plot()函數的例子
-
help.search('normal')#如果不知道搜索什么函數,可以搜索關鍵字
5一些細節:
- R語言區分大小寫
本人水平有限,懷着分享學習的態度發表此文,歡迎大家批評,交流。感謝您的閱讀。
歡迎轉載本文,轉載時請附上本文地址:http://www.cnblogs.com/Dzhouqi/p/3414088.html
另外:歡迎訪問我的博客 http://www.cnblogs.com/Dzhouqi/