R語言筆記:快速入門


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] 4

mode(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/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM