今天学习的内容是R语言中的数据结构
向量
理解向量之前,需要知道元素的概念。元素指的是数字或字符串,根据它可以区分标量和向量
标量:一个元素组成的变量
向量:多个元素组成的变量
使用时,会用到赋值,昨天学习的<-
就是赋值命令,赋值可以是数值、字符串、数据框等。以下是赋值操作的练习。
x<- c(1,2,3) #常用的向量写法,意为将x定义为由元素1,2,3组成的向量 x 1 2 3
x<- 1:10 #从1-10之间所有的整数 x 1 2 3 4 5 6 7 8 9 10
x<- seq(1,10,by = 0.5) #1-10之间每隔0.5取一个数(注意是逗号不是分号) x 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0
x<- rep(1:3,times=2) #1-3 重复2次 x 1 2 3 1 2 3
赋值操作会对上一次赋值的内容进行覆盖,以最近一次的赋值为准。
提取向量
1.根据元素的位置进行提取
x[4] #x第4个元素 [1] 1
x[-4]#排除法,除了第4个元素之外剩余的元素 [1] 1 2 3 2 3
x[2:4]#第2到4个元素 [1] 2 3 1
x[-(2:4)]#除了第2-4个元素 [1] 1 2 3
x[c(1,5)] #第1个和第5个元素 [1] 1 2
- 根据元素的值进行提取x[x==2]#等于2的元素
[1] 2 2
x[x>0]#大于0的元素 [1] 1 2 3 1 2 3
x[x %in% c(1,2,5)]#存在于向量c(1,2,5)中的元素 [1] 1 2 1 2
数据框
首先将示例数据文件放到目录下,前一天操作中提到getwd
setwd
就能显示并更改自己所在的工作目录
读取本地数据
read.table(file = "huahua.txt",sep = "t",header =T) X1 X2 1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
a<-read.table(file = "huahua.txt",sep = "t",header =T)
设置行名和列名
a<-read.table(file = "huahua.txt",sep = "t",header =T) X<-read.csv('doudou.txt') #在示例数据里有doudou.txt 注意这里的变量X是一个数据框 colnames(X) #查看列名 1 "X1" "X2"
rownames(X) #查看行名,默认值的行名就是行号,1.2.3.4... 1 "1" "2" "3" "4" "5"
colnames(X)1<-"bioplanet"#有的公司返回数据,左上角第一格为空,R会自动补为x,用这个命令来修改 X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)#最后row.names的意思是修改第一列为行名 X X2
A 1
B NA
C NA
D 3
E NA
数据框的导出
write.table(X,file = "yu.txt",sep = ",",quote=F)#分隔符改为逗号,字符串不加双引号(默认格式带由双引号)
输入命令后,右下角已经导出了一个文件
变量的保存与加载
save.image(file="bioinformation.RData")#保存当前所有变量 save(X,file="test.RData")#保存其中一个变量 load("test.RData")#再次使用RData时的加载命令
提取元素
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$列名#也可以提取列
save(X,file="test.RData")
报错可能是没有文件名的后缀