今天的学习内容是R语言的基本数据结构:
在这些数据类型里,我们主要学习的是向量与数据框这两种。
1、向量
(1)区分标量和向量
- 元素:数字或字符串(使用时要加引号)
- 标量:一个元素组成的变量
- 向量:多个元素组成的变量,有序排列
使用时,一般都会直接给变量定义,也就是“赋值”,字面意思是赋予这个变量一个数值(或者是字符串/数据框等)。
x<- c(1,2,3) #由元素1,2,3组成的向量
x<- 1:10 #从1-10之间所有的整数
x<- seq(1,10,by = 0.5) #1-10之间每隔0.5取一个数
x<- rep(1:3,times=2) #1-3,重复2次
赋值结果如下:
(2)从向量中提取元素
- 根据元素的位置
x[3] #第3个元素
x[-3] #排除法,除了第3个元素之外剩余的元素
x[1:3] #第1-3个元素
x[-(1:3)] #除了第1-3个元素
x[c(1,3)] #第1个和第3个元素
以向量(1,2,3,1,2,3)为例,提取元素:- 根据值
x[x==1] #等于1的元素
x[x<2] #小于2的元素
x[x %in% c(1,2,5)] #存在于向量c(1,2,5)中的元素
同样以向量(1,2,3,1,2,3)为例,提取元素:2、数据框
- 首先要将示例数据放在工作目录下
(1)读取本地数据
sep参数用来指定字符的分隔符号,常用的有
sep = ","
、sep = "\t"
和sep = " "
。header = FALSE
表示第一行即为具体数据,header = TRUE
表示第一行用于列名称,具体数据从第二行开始。
(2)设置行名和列名
X<-read.csv('doudou.txt') #在示例数据里有doudou.txt,这里的变量X是一个数据框
colnames(X) #查看列名
rownames(X) #查看行名,默认行名就是行号,1、2、3、4...
colnames(X)[1]<-"bioplanet" #修改第一列列名
X<-read.csv(file = "huahua.txt",sep = " ",header = T,row.names = 1) #最后row.names的意思是修改第一列为行名
(3)数据框的导出
write.table(X,file = "yu.txt",sep = ",",quote=F)
分隔符改为逗号,字符串不加双引号。
(4)变量的保存与重新加载
没有处理完的数据下次想接着用要进行保存,格式是RData。
save.image(file="bioinfoplanet.RData") #保存当前所有变量
save(X,file="test.RData") #保存其中一个变量
load("test.RData") #再次使用RData时的加载命令
(5)提取元素
X[a,b] #第a行第b列
X[a,] #第a行
X[,b] #第b列
X[b] #也是第b列
X[a:b] #第a到b列
X[c(a,b)] #第a和第b列
X$列名 #提取某一个特定的列
(6)直接使用数据框中的变量
iris是R语言的内置数据,可以直接使用。提取某两列作散点图:
plot(iris$Sepal.Length,iris$Sepal.Width)
脚本的使用和保存:
- 将代码复制或手打到一个新的R脚本中
- 然后保存到工作目录下
- 打开发现脚本文件的后缀就是R
- 要用时直接找到它,用Rstudio打开
3、作业
问题:save(X,file="test.RData")
这句代码如果报错object X not found,是为什么,应该怎么解决?
答:出现object X not found说明赋值出了问题,可能是没有区分大小写。所以将X进行正确的赋值即可。
本学习内容参考微信公众号:生信星球