R语言入门之数据的导入和导出

2020-08-06 09:57:19 浏览数 (1)

第一部分 导入数据(Importing Data)

在我们平时的研究工作中,经常使用的是逗号分隔文件(.csv文件)、制表符分隔文件(.tsv文件)和空格分隔文件(.txt文件)。当然对于一些基因组文件或者其它格式的文件,各自有各自的特点,原则上R语言可以读取任何格式的文件,只需掌握基本的读取文件方法后按照不同特点调整参数即可。

1. 使用一般方法读取文件(也即文件名以.csv为后缀的文件)

(1)读取逗号分隔文件

代码语言:javascript复制
#通常文件第一行是题头(也称列名),逗号是文件内容的分隔符
#尤其需要注意的是在windows操作系统中文件路径需用‘/‘来分隔
#第一个参数是读入的文件(由文件所在路径及其文件名构成)
#第二个参数是指定是否将第一行作为列名,TRUE表示第一行即为列名
#第三个参数是指定分隔符
#第四个是指定行名所在的列,指定列名为“id”这一列的数据为行名
mydata <- read.table("c:/mydata.csv", header=TRUE,
   sep=",", row.names="id")

(2)读取制表符分隔文件

制表符其实就是指键盘上的Tab键,正常情况下一个制表符长度等于四个空格的长度。

代码语言:javascript复制
#读取制表符分隔文件和读取逗号分隔文件的方法很类似
#唯一不同可能就在与sep这个参数后边的值是t,实际上t就是指制表符
mydata <- read.table("c:/mydata.tsv", header=TRUE,
   sep="t", row.names="id")

(3)读取普通的txt文件

代码语言:javascript复制
#因为read.table()这个函数sep的默认值是空格,所以读取txt文件一般不需要设置sep的参数值
mydata <- read.table("c:/mydata.txt", header=TRUE, row.names="id")

另外如果想读取csv文件,也可以使用read.csv()函数,它和read.table()类似,只是不需要设置sep参数,会方便一些。

2. 直接高效读取以.gz结尾的压缩文件

一般在R中可以使用gzfile()的方式读取压缩文件,但如果使用data.table包里的fread()函数则可以大大提高工作效率。具体方法如下:

代码语言:javascript复制
#安装并加载data.table包
#使用fread()函数读取文件,这里参数和之前的一致
#唯一的不同就是fread()可以直接读取压缩文件
install.packages(‘data.table’)
library(data.table)
mydata <- fread(‘c:/mydata.txt.gz’, header=T, row.names=’id’)

第二部分 导出数据(Exporting Data)

在R语言中有很多方法可以导出各种类型的数据,但常用的文件格式也就第一部分中主要涉及的三类,即逗号分割文件、制表符分隔文件以及空格分隔文件。

1. 导出数据为csv文件

代码语言:javascript复制
#第一个参数是需要导出的数据名称
#第二个参数是导出后新文件的名称
#第三个参数是指文件的分隔符
#导出数据和导入数据的参数类似,只是所使用的函数不同
write.table(mydata, "c:/mydata.csv", sep=",")

当然也可以直接用write.csv()函数导出csv格式的文件

2. 导出数据为tsv文件

代码语言:javascript复制
write.table(mydata, "c:/mydata.tsv", sep="t")

3. 导出数据为txt文件

代码语言:javascript复制
write.table(mydata, "c:/mydata.txt")

Tips:

(1)使用?function()的形式查阅函数的帮助信息,比如?read.table(); 也可以用??function()的方法

(2)推荐刚入门的小伙伴下载Rstudio,使用起来很方便

(3)data.table这个包的一些功能可能依赖其它包,需要将其依赖包也安装上

0 人点赞