1.设置工作路径
setwd('/mnt/SSS/database/Day5')
2.读取doudou
先看看长什么样子
image.png
> X<-read.table('doudou.txt')
> head(X)
V1
1 X1,X2
2 A,1
3 B,
4 C,
5 D,3
6 E,
#发现不是我想要的样子,分隔是,。
> X<-read.table('doudou.txt',sep =',',header=T)
> head(X)
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
#这样就对了,其实还可以read.csv
> X<-read.csv('doudou.txt')
> head(X)
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
再来看一下huahua
image.png
#读取huahua
> X<-read.table('huahua.txt',sep =' ',header=T)
> head(X)
X1.X2
1 A\t1
2 B\t
3 C\t
4 D\t3
5 E\t
两列之间有空格,所以sep里面加了空格,但是读出来是这个样子的。其实两列之间不是空格,是tab分隔的。因此sep=‘\t’
> X<-read.table('huahua.txt',sep ='\t',header=T)
> head(X)
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
#那能不能csv读取呢
> X<-read.csv('huahua.txt')
> head(X)
X1.X2
1 A\t1
2 B\t
3 C\t
4 D\t3
5 E\t
csv和txt有什么区别
其实是两者的分隔符不同,csv默认‘,’,txt默认‘’
CSV文件默认以英文逗号做为列分隔符,因此第一个文件csv不用设置sep参数,第二个文件如果设置sep ='\t'也是可以读取的。
3.设置行名和列名
> X<-read.csv('doudou.txt') #
> class(X)
[1] "data.frame"
> colnames(X) #查看列名
[1] "X1" "X2"
> rownames(X) #查看行名
[1] "1" "2" "3" "4" "5"
> colnames(X)[1]<-"bioplanet"#有的公司返回数据,左上角第一格为空,R会自动补为x,用这个命令来修改
> head(X)
bioplanet X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
4.数据框的导出
X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)#最后row.names的意思是修改第一列为行名
write.table(X,file = "yu.txt",sep = ",",quote=F)#分隔符改为逗号,字符串不加双引号(默认格式带由双引号)
5.变量的保存与重新加载
这次没有处理完的数据下次想接着用怎么办?--学会保存和重新加载。保存的格式是RData。
save.image(file="bioinfoplanet.RData")#保存当前所有变量
save(X,file="test.RData")#保存其中一个变量
load("test.RData")#再次使用RData时的加载命令
6.提取元素
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$列名#也可以提取列(优秀写法,而且这个命令还优秀到不用写括号的地步,并且支持Tab自动补全哦,不过只能提取一列)
7.脚本保存
后缀就是.R
image.png
8.作业
另外请在作业中回答一个问题:save(X,file="test.RData")这句代码如果报错object X not found,是为什么,应该怎么解决?
- X大小写是否搞错
- 在环境里面找找是否有X image.png
- 没有的话是不是X没有被赋值,检查一下代码
网友评论