R语言入门之数据的导入和导出
第一部分 导入数据(Importing Data)
在我们平时的研究工作中,经常使用的是逗号分隔文件(.csv文件)、制表符分隔文件(.tsv文件)和空格分隔文件(.txt文件)。当然对于一些基因组文件或者其它格式的文件,各自有各自的特点,原则上R语言可以读取任何格式的文件,只需掌握基本的读取文件方法后按照不同特点调整参数即可。
1. 使用一般方法读取文件(也即文件名以.csv为后缀的文件)
(1)读取逗号分隔文件
#通常文件第一行是题头(也称列名),逗号是文件内容的分隔符
#尤其需要注意的是在windows操作系统中文件路径需用‘/‘来分隔
#第一个参数是读入的文件(由文件所在路径及其文件名构成)
#第二个参数是指定是否将第一行作为列名,TRUE表示第一行即为列名
#第三个参数是指定分隔符
#第四个是指定行名所在的列,指定列名为“id”这一列的数据为行名
mydata <- read.table("c:/mydata.csv", header=TRUE,
sep=",", row.names="id")
(2)读取制表符分隔文件
制表符其实就是指键盘上的Tab键,正常情况下一个制表符长度等于四个空格的长度。
#读取制表符分隔文件和读取逗号分隔文件的方法很类似
#唯一不同可能就在与sep这个参数后边的值是t,实际上t就是指制表符
mydata <- read.table("c:/mydata.tsv", header=TRUE,
sep="t", row.names="id")
(3)读取普通的txt文件
#因为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()函数则可以大大提高工作效率。具体方法如下:
#安装并加载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文件
#第一个参数是需要导出的数据名称
#第二个参数是导出后新文件的名称
#第三个参数是指文件的分隔符
#导出数据和导入数据的参数类似,只是所使用的函数不同
write.table(mydata, "c:/mydata.csv", sep=",")
当然也可以直接用write.csv()函数导出csv格式的文件
2. 导出数据为tsv文件
write.table(mydata, "c:/mydata.tsv", sep="t")
3. 导出数据为txt文件
write.table(mydata, "c:/mydata.txt")
Tips:
(1)使用?function()的形式查阅函数的帮助信息,比如?read.table(); 也可以用??function()的方法
(2)推荐刚入门的小伙伴下载Rstudio,使用起来很方便
(3)data.table这个包的一些功能可能依赖其它包,需要将其依赖包也安装上
- 字符串方法汇总(三)
- 周鸿祎:“大安全”网络时代 需要AI大数据的技术支持
- 爆料:对扫码支付下手后,据说央行接下来要提高备付金,目标比例42%
- 回顾2017年5大科技突破,“时间晶体”充满想象!
- 1宽币=883?山本宽称要发行自己的数字货币
- 十种深度学习算法要点及代码解析
- 王健林旗下万达网科被曝大裁员 总裁出面说话了
- lodash源码分析之缓存方式的选择
- 《物联网智能终端信息安全白皮书》发布
- SemCmsv2_4 Function_php文件过滤不严导致Sql注入
- Python为什么这么火?聆听Python之父诠释Python的精神和文化
- 阿里程序员2017年终总结:web前端最有效学习方法!让你少走弯路
- 《关于深化“互联网+先进制造业”发展工业互联网的指导意见》的系列解读 解读二:打造平台体系
- 2018最火的AI丶云计算丶大数据丶物联网丶量子计算五大热门之间的关系
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- linux中crw brw lrw等等文件属性是什么
- centos中文件与权限的基本操作教程
- 在Linux中使用tcpdump命令捕获与分析数据包详解
- easyswoole一键安装脚本及宝塔安装错误问题
- CentOS7系统增加swap的操作方法实例
- iOS逆向之OpenSSH登录iPhone
- linux中SUID,SGID与SBIT的奇妙用途详解
- 详解Linux文件操作知识点
- Linux中nohup与&的用法和区别详解
- Linux中有效地管理进程的8个命令
- Centos7 下安装python3及卸载的教程
- Linux使用VIM编辑器的方法
- Centos安装MYSQL8.X的教程
- Linux使用join -a1来合并两个文件
- ZFS是什么?使用ZFS的理由及特性介绍