将数据快速读入R—readr和readxl包
来源:互联网 发布:java 运行时代理 编辑:程序博客网 时间:2024/06/06 05:42
Hadley Wickham 和 RStudio团队写了一些新的R包,这些包对于每个需要在R中读入数据的人来说都是非常有用的。readr包提供了一些在R中读入文本数据的函数。readxl包提供了一些在R中读入Excel电子表格数据的函数。它们的读取速度远远超过你目前正在用的一些函数。
readr
包提供了若干函数在R中读取数据。我们通常会用R中的read.table
家族函数来完成我们的数据读入任务。这里,readr
包提供了许多替代函数。它们增加了额外的一些功能并且速度快很多。
首先,read_table
几乎代替了read.table
。下面通过读取一个包含400万行的数据来比较它们的区别。点击这里下载该数据。
注1:在演示之前简单说下我电脑的配置:win7,64位操作系统,8G内存,CPU A6双核。电脑配置不行,原文给出的实验时间甩了我好几条街。但不管怎样,在现有的条件下效率确实提高了很多。原文用时见末尾链接。
注2:如果读取中文数据出现乱码,在编辑器设置下字符编码为"UTF-8"
system.time(read_table("C:\\Users\\a\\Desktop\\biggerfile.txt", col_names=c("DAY","MONTH","YEAR","TEMP")))system.time(read.table("C:\\Users\\a\\Desktop\\biggerfile.txt", col.names=c("DAY","MONTH","YEAR","TEMP")))
这些命令看上去非常相似,但是read.table
花的时间是50.62秒,而read_table
完成相同的任务只花了2.76秒。这是因为read_table
把数据当做是固定格式的文件,并且使用C++快速处理数据。
R中的基础包utils
也有读取固定宽度数据的函数,下面的示例就能体现出readr
的亮点:
system.time(read_fwf("C:\\Users\\a\\Desktop\\biggerfile.txt", fwf_widths(c(3,15,16,12), col_names=c("DAY","MONTH","YEAR","TEMP"))))system.time(read.fwf("C:\\Users\\a\\Desktop\\biggerfile.txt", c(3,15,16,12), col.ames=c("DAY","MONTH","YEAR","TEMP")))
readr
包的read_fwf
函数用时3.97秒,而标准的read.fwf
函数耗时1372秒。
readr包中的其它函数包括:read_csv
读取逗号分隔的数据(欧洲用的是read_csv2
函数),read_tsv
读取制表符分隔数据,read_lines
函数从文件中逐行读取数据(非常适合复杂的后期处理)。它还可以读取多种格式的日期时间列,智能的将文本数据读取为字符串(不再需要设置strings.as.factors=FALSE
)。
对于Excel格式的数据,这里有readxl包。这个包提供的函数可以读取.xls和.xlsx格式的Excel工作表。虽然这里没有演示read_execl
函数的使用,但是它跟readr
中的函数一样都是基于C++库的,因此读取速度应该也很快。最重要的是,它没有任何的外部依赖,因此你可以在任意平台上用它来读取数据—不要求安装了Excel。
readr
包已发布在CRAN上,readxl
可以从github安装。
本文由雪晴数据网负责翻译整理,原文请参考New packages for reading data into R — fast作者David Smith。转载请注明原文链接http://www.xueqing.tv/cms/article/102
转载自:http://www.xueqing.tv/cms/article/102
- 将数据快速读入R—readr和readxl包
- 规模数据导入高效方式︱将数据快速读入R—readr和readxl包
- R语言读CSV、txt文件方式以及read.table read.csv 和readr(大数据读取包)
- R语言读CSV、txt文件方式以及read.table read.csv 和readr(大数据读取包)
- R语言读CSV、txt文件方式以及read.table read.csv 和readr(大数据读取包)
- readr包:读取/输出文本数据
- R语言读入数据
- R语言读入数据
- R 数据读入
- R数据读入笔记
- R语言读入数据
- R语言读入文本数据
- R:读入csv格式数据
- #R语言#读入和保存
- R 读入数据+曲线图+linear regression
- Packrat:将你的代码和R包一起打包
- Get data out of excel and into R with readxl
- R中高效读取文件readxl, read.fwf
- 2017总结,
- iptables规则备份和恢复、firewall的9个zone、关于zone的操作和关于service的操作
- centos7下安装nginx
- Android NDK实现增量更新
- Flask框架知识系列之三
- 将数据快速读入R—readr和readxl包
- Java设计模式-工厂方法模式
- RF-常用关键字-sleep
- TCP/IP三次握手 四次挥手
- Netty自动分解协议
- 深刻理解双重检查锁定(double-checked locking)与单例模式
- 今天的题
- 从弧长的计算到逆时针与顺时针旋转的定义 (二维空间)
- 获取国外电话途径的方法(电话号码可以注册google账号)