#矩陣
是将R行和列組成的數組 資料元素要求是同一種類型
函數:
matrix
data 矩陣的元素向量的形式
nrow 行數
ncol 列數
byrow 是否按照行排列 預設是列排序 true 按行 false 按列
dimnames 可選 對行列進行命名
m<-matrix(1:6,nrow=2,ncol=3,byrow =T,dimnames =list(c('r1','r2'),c('c1','c2','c3')))
加入byrow 進行排列
m<-matrix(1:6,nrow=2,ncol=3,dimnames =list(c('r1','r2'),c('c1','c2','c3')))
數值通路矩陣元素
m[1,1] 1行1列
m[1,] 第一行
m[,1]第一列
邏輯通路矩陣元素
m[c(T,F),] 第一行
行的名字進行通路
m['r1',] 第一行
#編輯元素
m[1,]<-c(100,99,98)
批量指派整行
m[1,]<-100 第一行r1的長度為3,100是1個長度,100會被使用三次
矩陣轉置
t(m) 列變行 行變列
#數組 資料類型也是統一的
?array
#data 向量
#dim 次元
#dimnames 次元名稱的清單 可選
array(1:10) #一維的數組就是向量
array(1:10,dim = c(2,5))#矩陣
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列
arry3[,,'C1']
arry3[,,1]
arry3[,,c(T,F)]
#資料框 可以包含各種資料類型 每列叫做變量 每行叫做觀測樣本
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
#清單 最複雜 可以包含各種元素
list()
list1<-list(a=1,b='char',c=m,d=student)
list1[[1]]
list1[['a']]
list1[[4]] #通路需要加雙重[[]]
list1[4]
class(list1[4])
總結
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]]