首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >R语言入门之数据的导入和导出

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

作者头像
生信与临床
发布2020-08-06 09:57:19
发布2020-08-06 09:57:19
3.9K0
举报

第一部分 导入数据(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这个包的一些功能可能依赖其它包,需要将其依赖包也安装上

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信与临床 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档