2021-03-09 生信小组 数据结构
数据类型
- 向量 vector
- 矩阵 matrix
- 数组 array
- 数据框 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.提取元素
- 根据位置
x[4] #第4个元素
x[-4] #除了第4个元素
x[2:4]#第2到4个元素
x[-(2:4)]#除了第2-4个元素
x[c(1,5)] #第1个和第5个元素
- 根据值
x[x==10] #等于10的元素
x[x<0] #小于0的元素
x[x %in% c(1,2,5)] #存在于向量c(1,2,5)中的元素
数据框
- 读取本地数据
read.table(file="huahua.txt",sep="\t",header=T) #header=T,首行作为列名
- 设置行名和列名
X<-read.csv('doudou.txt')
colnames(X) #查看列名
rownames(X) #查看行名,默认值是行号
colnames(X)[1]<-"bioplanet" #有的公司返回数据,左上角第一格为空,R会自动补为x,用这个命令来修改
X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1) #修改第一列为行名
- 导出数据框
write.table(X,file = "yu.txt",sep = ",",quote=F)
- 保存变量,重新加载
save.image(file="bioinfoplanet.RData") #保存当前所有变量
save(X,file="test.RData") #保存一个变量
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)
精简
- attach() 将数据名添加到搜索环境中
attach(a)
plot(case,values)
detach(a) #删除搜索环境中的a
列名冲突时报错
- with
with(a,{
plot(case,values)
x<<-summary(values) #<<的意思是作为全局变量,出了大括号仍有效
})
x