2021-03-09 生信小組 數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)類型
- 向量 vector
- 矩陣 matrix
- 數(shù)組 array
- 數(shù)據(jù)框 data frame
- 列表 list
向量
由元素組成
- 賦值
x<- c(1,2,3)
x<- 1:10
x<- seq(1,10,by = 0.5)
x<- rep(1:3,times=2)
2.提取元素
- 根據(jù)位置
x[4] #第4個(gè)元素
x[-4] #除了第4個(gè)元素
x[2:4]#第2到4個(gè)元素
x[-(2:4)]#除了第2-4個(gè)元素
x[c(1,5)] #第1個(gè)和第5個(gè)元素
- 根據(jù)值
x[x==10] #等于10的元素
x[x<0] #小于0的元素
x[x %in% c(1,2,5)] #存在于向量c(1与倡,2州叠,5)中的元素
數(shù)據(jù)框
- 讀取本地?cái)?shù)據(jù)
read.table(file="huahua.txt",sep="\t",header=T) #header=T,首行作為列名
- 設(shè)置行名和列名
X<-read.csv('doudou.txt')
colnames(X) #查看列名
rownames(X) #查看行名,默認(rèn)值是行號(hào)
colnames(X)[1]<-"bioplanet" #有的公司返回?cái)?shù)據(jù)训桶,左上角第一格為空匿刮,R會(huì)自動(dòng)補(bǔ)為x,用這個(gè)命令來(lái)修改
X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1) #修改第一列為行名
- 導(dǎo)出數(shù)據(jù)框
write.table(X,file = "yu.txt",sep = ",",quote=F)
- 保存變量典蜕,重新加載
save.image(file="bioinfoplanet.RData") #保存當(dāng)前所有變量
save(X,file="test.RData") #保存一個(gè)變量
load("test.RData") #加載Rdata
- 提取元素
s[x,y] #第x行第y列
s[x,] #第x行
s[,y] #第y列
s[y] #也是第y列
s[a:b]#第a列到第b列
s[c(a,b)] #第a列和第b列
s$列名 #提取列
其他
options(stringsAsFactors = T)
a <-data.frame(case=paste0("S",1:9),values=runif(9))
plot(a$case,a$values)
精簡(jiǎn)
- attach() 將數(shù)據(jù)名添加到搜索環(huán)境中
attach(a)
plot(case,values)
detach(a) #刪除搜索環(huán)境中的a
列名沖突時(shí)報(bào)錯(cuò)
- with
with(a,{
plot(case,values)
x<<-summary(values) #<<的意思是作為全局變量笤喳,出了大括號(hào)仍有效
})
x