一、向量
1.标题和向量的区分
标量:一个元素组成的变量
向量:多个元素组成的变量
> x<- c(1,2,3)#常用的向量写法,意为将x定义为由元素1,2,3组成的向量。
> x
[1] 1 2 3
> x<- 1:10#从1-10之间所有的整数
> x
[1] 1 2 3 4 5 6 7 8 9 10
> x<- seq(1,10,by = 0.5) #1-10之间每隔0.5取一个数(注意是逗号不是分号)
> x
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0
[12] 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] 1 2 3 1 2 3
2.从向量中提取元素
- 根据元素位置
> 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 | 1 | 2 | 3 | 1 | 2 | 3 |
---|---|---|---|---|---|---|
x[4] | - | - | - | 1 | - | - |
x[-4] | 1 | 2 | 3 | - | 2 | 3 |
x[2:4] | - | 2 | 3 | 1 | - | - |
x[-(2:4)] | 1 | - | - | - | 2 | 3 |
x[c(1,5)] | 1 | - | - | - | 2 | - |
- 根据值
> x[x==10]#等于10的元素
integer(0)
> x[x>2]
[1] 3 3
> x[x %in% c(1,2,5)]#存在于向量c(1,2,5)中的元素
[1] 1 2 1 2
二、数据框
要将数据放在工作目录下,或设置工作目录到数据文件所在位置。
将工作目录放在桌面,代码setwd("~/Desktop")
也可以这样设置:
(1) 读取本地数据
a<-read.table(file = 'huahua.txt',sep = '\t',header = T)
(2) 设置行名和列名
> X<-read.csv('doudou.txt')
> 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的意思是修改第一列为行名
(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)提取元素
> a[4,2]#第4行、第2列
[1] 3
> a[2,]#第2行,所有列
X1 X2
2 B NA
> a[,1]#所有行,第1列
[1] "A" "B" "C" "D" "E"
> a[1]#第1列
X1
1 A
2 B
3 C
4 D
5 E
> a[1:2]#第1到2列,等于a[,1:2]
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
> a[1:2,]#第1到2行,所有列
X1 X2
1 A 1
2 B NA
> a[c(2,4),]#第2、4行,所有列
X1 X2
2 B NA
3 C NA
4 D 3
> a[c(1,2),2]#第1,2行,第2列
[1] 1 NA
(6)【选修部分】直接使用数据框中的变量
> 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)
- with用法
> with(a,{
+ plot(case,values)
+ x<<-summary(values) #求和并赋值给x,<<的意思是作为全局变量,也就是出了大括号仍有效。
+ })
> x #运行完后打印x