生信星球培训第133期

Day5-数据类型

2022-04-19  本文已影响0人  Sun506

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,是为什么,应该怎么解决?

上一篇 下一篇

猜你喜欢

热点阅读