天天看點

R 複雜資料類型third day

R 複雜資料類型third day

#矩陣

是将R行和列組成的數組 資料元素要求是同一種類型

函數:

matrix

data 矩陣的元素向量的形式

nrow 行數

ncol 列數

byrow 是否按照行排列 預設是列排序 true 按行 false 按列

dimnames 可選 對行列進行命名

R 複雜資料類型third day

m<-matrix(1:6,nrow=2,ncol=3,byrow =T,dimnames =list(c('r1','r2'),c('c1','c2','c3')))

R 複雜資料類型third day

加入byrow 進行排列

m<-matrix(1:6,nrow=2,ncol=3,dimnames =list(c('r1','r2'),c('c1','c2','c3')))

R 複雜資料類型third day

數值通路矩陣元素

m[1,1] 1行1列

m[1,] 第一行

m[,1]第一列

R 複雜資料類型third day

邏輯通路矩陣元素

m[c(T,F),] 第一行

R 複雜資料類型third day

行的名字進行通路

m['r1',] 第一行

R 複雜資料類型third day

#編輯元素

m[1,]<-c(100,99,98)

R 複雜資料類型third day

批量指派整行

m[1,]<-100 第一行r1的長度為3,100是1個長度,100會被使用三次

R 複雜資料類型third day

矩陣轉置

t(m) 列變行 行變列

R 複雜資料類型third day

#數組 資料類型也是統一的

?array

#data 向量

#dim 次元

#dimnames 次元名稱的清單 可選

R 複雜資料類型third day

array(1:10) #一維的數組就是向量

array(1:10,dim = c(2,5))#矩陣

R 複雜資料類型third day

dim1<-c('A1','A2')

dim2<-c('B1','B2','B3')

dim3<-c('C1','C2')

arry3<-array(1:12,c(2,3,2),dimnames = list(dim1,dim2,dim3))

array(1:12,c(2,3,2))#三維數組 建立兩個矩形矩陣 每2行3列

R 複雜資料類型third day
R 複雜資料類型third day

arry3[,,'C1']

arry3[,,1]

arry3[,,c(T,F)]

R 複雜資料類型third day

#資料框 可以包含各種資料類型 每列叫做變量 每行叫做觀測樣本

data.frame()

student<-data.frame(ID=c(1001,1002,1003),

NAME=c('lili','bobo','sam'),

GENDER=c('F','M','M')) #會把類型轉換為因子

GENDER=c('F','M','M'),stringsAsFactors = F) #加上參數string關閉轉換

student[1,1]

student[1,]

student[,1]

student['ID']

student[,'ID']

student$ID

student[c('ID','NAME')]

student[1,1]<-1009

R 複雜資料類型third day

#清單 最複雜 可以包含各種元素

list()

list1<-list(a=1,b='char',c=m,d=student)

list1[[1]]

list1[['a']]

list1[[4]] #通路需要加雙重[[]]

list1[4]

class(list1[4])

R 複雜資料類型third day

總結

R 複雜資料類型third day

1、 操作題:

将 1,2,3,…,12 構成兩個 3*4 的矩陣,矩陣 A 是按列輸入,矩陣 B 是按行輸入。

2、 操作題:

将矩陣 B 的第一列的元素都改成 100.

3、 操作題:

ID name weight

1 張三 60

2 李四 70

3 王五 80

建立資料框将它命名成 wtdata,要求第一、三列的資料類型是數值型的,第二列資料類

型是字元型的。

4、 操作題:

傳回資料框 wtdata 第一、三行的資訊

5、 操作題:

建立一個清單,将它命名成 wtlist,清單的長度是 3,清單的第 1 個元素是矩陣 A,列

表的第 2 個元素是矩陣 B,清單的第 3 個元素是 wtdata

6、 操作題:

傳回清單 wtlist 第 1 個元素的資訊。

1.A<-matrix(1:12,nrow = 3,ncol = 4,)

A

B<-matrix(1:12,nrow = 3,ncol = 4,byrow = T)

B

B[1,]<-c(1,2,3,4)

2.B[,1]<-100

B[,1]<-1,5,9

3.peson<-data.frame(ID=c(1,2,3),name=c('張三','李四','王五'),weight=c(60,70,80),stringsAsFactors = F)

4.peson[c(1,3)]

peson[c(T,F,T)]

peson[2,3]

5.wtlist<-list(a=A,b=B,c=peson)

6.wtlist[1]

wtlist[[1]]