1. 数据类型:向量、矩阵、数组、数据框、list
1.1. 向量
(1) 元素是指数字或者字符串(用chr表示);标量是一个元素组成的变量;向量是多个元素组成的变量。
标量:1
,“shanhai”
;向量:c(1,2,3)
,c(“bio01”,“bio02”,“bio03”)
(2) 赋值:
x<- c(1,2,3)
将x定义为由元素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次
(3) 从向量中提取元素
①根据元素位置提取元素:x[4]
x第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)中的元素
1.2. 数据框
(1) 读取本地数据:
read.table(file = "huahua.txt" ,sep = "\t" , header =T)
sep 是函数的形式参数,多数情况下, seq 参数用来指定字符的分隔符号。csv 文件是用逗号分隔的,故而 sep = ",";tsv 文件是用制表符分隔的,故而 sep = "\t"
header=T目的为把第一行设置为表头
(2) 设置行名和列名:
①X<-read.csv('doudou.txt')
;colnames(X)
查看列名;rownames(X)
查看行名,默认值的行名就是行号,1.2.3.4...;
②colnames(X)[1]<-"bioplanet"
有的公司返回数据,左上角第一格为空,R会自动补为x,用这个命令来修改;
③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) 变量的保存与重新加载:
save.image(file="bioinfoplanet.RData")
保存当前所有变量;save(X,file="test.RData")
保存其中一个变量;load("test.RData")
再次使用RData时的加载命令
(5) 提取元素:
X[x,y]
第x行第y列;X[x,]
第x行;X[,y]
第y列;X[y]
也是第y列;X[a:b]
第a列到第b列;X[c(a,b)]
第a列和第b列;X$列名
提取某一列
(6) 直接使用数据框中的变量:
plot(iris$Sepal.Length,iris$Sepal.Width)
用R语言的内置数据集iris作图
问题:save(X,file="test.RData")
这句代码如果报错object X not found
,是为什么,应该怎么解决?
原因:未发现X这个变量,X未赋值,可能是把X打成了小写x
解决:给X进行赋值即可