R語言入門(二)

2021-06-28 22:36:28 字數 4590 閱讀 9018

今天看到乙個好的系列部落格,在此推薦:

這部分主要介紹r語言的幾種資料結構。r語言的資料結構為向量、矩陣、陣列、資料框、列表。

向量主要是用來儲存數值型(1,2,3)、字元型(「abc」,「efg」)或者邏輯型(true、false)資料的一維陣列。我們可以用函式c()來建立向量。如下:

> a

<-c(1,2,3,3,4,5)

> b<-c("abc","efg")

> c<-c(true,false,true)

這裡要注意的是向量和標量的區別:標量是只包含乙個元素的向量。

對於我們建立好的向量我們可以採取類似程式語言中陣列下標的方式讀取,但是這裡要注意的是r語言的下標不是從0開始的,而是從1開始的。如下:

> a

<-c(1,2,3,3,4,5)

> a

[1][1] 1

當我們要取一段數值串行時,比如我們要取第二個到第四個資料時我們可以用如下方法:

> a

[2:4]

[1] 2 3 3

向量中還有一些常用的函式,像mode(),length(),rbind(),cbind()等等,這裡舉部分示例:

> x<-c(1:10)

> mode(x)#檢視資料型別

[1] "numeric"

> y<-c("a","b")

> mode(y)

[1] "character"

> length(x)#檢視長度

[1] 10

> z<-c(11:20)

> z

[1] 11 12 13 14 15 16 17 18 19 20

> m1<-rbind(x,z)#組合成矩陣

> m1

[,1]

[,2]

[,3]

[,4]

[,5]

[,6]

[,7]

[,8]

[,9]

[,10]

x 1 2 3 4 5 6 7 8 9 10

z 11 12 13 14 15 16 17 18 19 20

> m2<-cbind(x,z)

> m2

x z

[1,] 1 11

[2,] 2 12

[3,] 3 13

[4,] 4 14

[5,] 5 15

[6,] 6 16

[7,] 7 17

[8,] 8 18

[9,] 9 19

[10,] 10 20

還有一些其他數**算的函式:mean()、sum()、min()、max()、var()、sd()、prod(),舉例如下:

> x<-c(1:100)

> length(x)

[1] 100

> mean(x)#求平均值

[1] 50.5

> sum(x)#求和

[1] 5050

> max(x)#求最大值

[1] 100

> min(x)#求最小值

[1] 1

> var(x)#求方差

[1] 841.6667

> prod(x)#連乘

[1] 9.332622e+157

> sd(x)#求標準差

[1] 29.01149

矩陣是乙個二維陣列,通過函式matrix建立矩陣。關於matrix的具體用法使用help(matrix)檢視。下面僅做一些舉例了:

> x<-matrix(1:10,nrow=5,ncol=2)#建立乙個行為5,列為2的矩陣

> x

[,1]

[,2]

[1,] 1 6

[2,] 2 7

[3,] 3 8

[4,] 4 9

[5,] 5 10

> cells<-c(1,26,24,68)

> rnames<-c("r1","r2")

> cnames<-c("c1","c2")

> mymatrix<-matrix(cells,nrow=2,ncol=2,byrow=true,dimnames=list(rnames,cnames))#建立乙個2*2的矩陣,按行排列,同時給行和列命名

> mymatrix

c1 c2

r1 1 26

r2 24 68

當我們要選中矩陣中行、列或元素時,我們可以如下表示:

> x<-matrix(1:10,nrow=2)#建立乙個2*5的矩陣

> x

[,1]

[,2]

[,3]

[,4]

[,5]

[1,] 1 3 5 7 9

[2,] 2 4 6 8 10

> x[2,]#獲取矩陣的第二行

[1] 2 4 6 8 10

> x[,2]#獲取矩陣的第二列

[1] 3 4

> x[1,c(4,5)]#獲取矩陣第一行的第4和5列

[1] 7 9

陣列與矩陣是類似的,但是陣列的緯度可以大於2,陣列使用函式array()來建立。形式如下:

myarray<-array(vector,dimensions,dimnames)

其中vector包含了陣列中的資料,dimensions是乙個數值型向量,給出了各個維度下標的最大值,dimnames是可選的,給出了各維度名稱標籤的列表。具體示例如下:

> dim1<-c("a1","a2")

> dim2<-c("b1","b2","b3")

> dim3<-c("c1","c2","c3","c4")

> z<-array(1:

24,c(2,3,4),dimnames=list(dim1,dim2,dim3))#建立乙個2*3*4的三維陣列

> z

, , c1

b1 b2 b3

a1 135

a2 246

, , c2

b1 b2 b3

a1 7911

a2 8

1012

, , c3

b1 b2 b3

a1 13

1517

a2 14

1618

, , c4

b1 b2 b3

a1 19

2123

a2 20

2224

資料框感覺就像資料庫裡面的表,通過函式data.frame()建立,示例如下:

> patientid<-c(1,2,3,4)

> age<-c(25,34,28,52)

> diabetes<-c("type1","type2","type1","type1")

> status<-c("poor","improved","excellent","poor")

> patientdata<-data.frame(patientid,age,diabetes,status)

> patientdata

patientid age diabetes status11

25type1

poor22

34type2

improved33

28type1

excellent44

52type1

poor

在資料框中有個新的符號$,它被用來選取乙個給定資料框中的某個特定變數,示例如下:

> patientdata$age

[1] 25

3428

52

列表是r中資料型別最為複雜的一種,某個列表可以包含有若干向量,矩陣,資料框,甚至其他列表的組合。使用函式list()建立列表。示例如下:

> g<-"my first list"

> h<-c(25,26,18,39)

> j<-matrix(1:10,nrow=5)

> k<-c("one","two","three")

> mylist<-list(title=g,ages=h,j,k)

> mylist

$title

[1] "my first list"

$ages

[1] 25

2618

39[[3]]

[,1] [,2]

[1,] 1

6[2,] 2

7[3,] 3

8[4,] 4

9[5,] 5

10[[4]]

[1] "one"

"two"

"three"

R語言入門

1 r是一種統計繪圖語言,也指實現該語言的軟體 3 安裝完成後,在安裝目錄的bin目錄下執行rgui.exe 4 常用命令 install.pacakages 程式包 安裝某程式包 help 函式 函式 獲得幫助頁面 yls 顯示記憶體中的所有物件 rm 物件 刪除記憶體中的物件 1 4 冒號是一種...

R語言入門

r語言是主要用於統計分析 繪圖的語言和操作環境。r最早是由ross lhaka和robert gentleman開發 也因此稱為r 現在由 r開發核心團隊 復責開發。r是屬於gnu協議下的乙個自由 免費 源 開放的軟體。官方主頁 免費不依賴作業系統 幫助功能完善 擴充套件功能強大 r擁有許多用於儲存...

R語言入門

獲取幫助文件,檢視命令或函式的使用方法 事例或適用範圍 command command 深度搜尋或模糊搜尋用此命令 example command 得到命令的例子 r語言不支援多行注釋,但可以使用乙個小技巧,如下 if false mystring hello,world print mystrin...