數據結構的學習
R語言中常用的數據結構:向量惕橙,因子,矩陣钉跷,數組弥鹦,數據框,列表。
一.向量
函數c()彬坏,是最簡單的數據結構朦促,可以是數值、字符栓始、邏輯類型务冕,元素是同類。
1.數值型向量 c(1,12,32)
賦值符號 = <- ->
通過變量對向量進行接收 c1<-c(1,12,32)
2.連續(xù)的向量
c2<-c(1:6)
3.字符串型向量
c4<-c("CD2","CD6A")
4.邏輯值型向量
c5<-c(T,F,T,T,F,T)
c5<-c(TRUE,FALSE,TRUE,FALSE,TRUE)
5.向量合并
c_combine<-c(c1,c2,c1)
6.查看變量的值
法一:c4
法二:print(c4)
7.看向量中某元素值幻赚,通過[]查看
c4[1]禀忆,c4[3]
8.使用坐標向量,將所有坐標向量中的數據調取
c4[c(1,2)] 調取c4向量中的第一和第二個元素
c4[c(T,T,F,T,F,F)]調取c4向量中第一落恼,三油湖,四個元素
二.因子
1.用函數factor()創(chuàng)建,可以是數值领跛、字符類型乏德,元素是同類
f1<-factor(c4)
f1 這里的Levels類別默認按字母排序
2.也可以在向量基礎上添加levels信息
f2<-factor(c5,levels=c("CD4","CD8A","PDCD1","TOP2A","TCF7","CCR7"))
f2 這里的levels類別就不是按默認的進行排序,而是按指定進行
3.參數labels的使用吠昭,來對向量中的元素進行一對一替換
c6<-c("f","m","f","m","m","f")
f2<-factor(c6,labels=c("famale","male"))
f2? 這里的f將被替換為famale,m將被替換為male
三.矩陣(二維)
1.函數 matrix()創(chuàng)建喊括,可是數值,字符矢棚,邏輯類型郑什,元素同類,通過把向量進行折疊
參數:data 向量數據 nrow:行數 ncol:列數 byrow:是否按行進行填充
m1<-matrix(data=c2,ncol=2,nrow=3)
m1 這里2行3列蒲肋,默認按列填充
2.當ncol或者nrow缺省時蘑拯,根據data的長度對另一個參數進行計算
3.當data長度小于矩陣能包含的元素個數時,進行循環(huán)填充
4兜粘,當data長度大于矩陣能包含的元素個數時申窘,舍棄多余的元素
5.查看元素
(1)查看單個元素,給定元素的位置 m3[2,2]第二行第二列
(2)查看某一行/某一列孔轴,得到一個向量m3[2,]/m3[,3]
? ?(3)? 得到某一個矩陣 m3[c(1,2),] ,m3[,c(1,3)],m3[c(1,2),c(2,3)]
四.列表
使用list()創(chuàng)建剃法,可是數值,字符路鹰,邏輯類型贷洲,元素可不是同類 格式name=variable
l1<-list(sample1=c1,sample2=c2,matrix1=m1,matrix2=m2)?
1.查看數據
兩種方式,單括號[],雙括號[[]]
單括號是取出列表子集晋柱,本質取出的還是列表
l1[1]
雙括號优构,取出列表中的某一元素
l1[[1]]
如果要取得一個值,列表一中的第一個元素
l1[[1]][1]
2.取列表子集
3.矩陣中的dimnames參數
dimnames:提供一個list列表雁竞,包含兩個向量元素钦椭,第一個為行名,第二個為列名。
name_list<-list(rowname=c("sample1","sample2","sample3"),colnames=c4)
m3<-matrix(data=c_combine,dimnames=name_list,nrow=3,nco=6,byrow=T)
五.數組(三維)看成一個魔方
使用函數array()創(chuàng)建玉凯,可是數值势腮,字符联贩,邏輯類型漫仆,數值是同類。
參數:? data;數據泪幌,向量盲厌,矩陣等;dim:維度向量祸泪,幾行幾列幾層
a1<-array(data=c(c1,c3,c2,c3,c2,c1),dim=c(3,5,2)) dim確定有兩層 都是三行五列
1.查看元素
使用坐標進行查看元素
a1[1,1,1]第一層的第一行第一列吗浩;a1[2,1,2]兩層的第二行第一列
六.數據框(二維)
使用data.frame()創(chuàng)建,可以是數值没隘,邏輯懂扼,字符,元素可以不同類
參數:? 輸入數據:以tag(名字)=data(數據)形式右蒲,長度必須相同阀湿;row.names:更換行名,長度必須與data等長瑰妄;stringsAsFactor:是否將字符串型列向量作為因子進行存儲
d1<-data.frame(sample1=c1,sample=c2,sample=c3,row.names=c4,check.rows=F,stringsAsFactors=F) 這里c1的數據內容作為第一列陷嘴,取名為sample1,c2的數據內容作為第二列,取名為sample2间坐,c4的內容作為行的名字灾挨。
1.查看元素
(1).使用坐標進行查看
d1[1,2]查看數據框中的第一行第二列的元素
(2).使用行名列名進行查看
d1[”CD4","sample1"]
(3).數據框可以使用$符號加列名,對列進行定位竹宋,得到列向量
d1$sample1
(4).也可以上述三種方法的組合
d1[2,"sample1"]