博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将数据快速读入R—readr和readxl包
阅读量:6902 次
发布时间:2019-06-27

本文共 1042 字,大约阅读时间需要 3 分钟。

hot3.png

Hadley Wickham 和 RStudio团队写了一些新的R包,这些包对于每个需要在R中读入数据的人来说都是非常有用的。提供了一些在R中读入文本数据的函数。提供了一些在R中读入Excel电子表格数据的函数。它们的读取速度远远超过你目前正在用的一些函数。

readr包提供了若干函数在R中读取数据。我们通常会用R中的read.table家族函数来完成我们的数据读入任务。这里,readr包提供了许多替代函数。它们增加了额外的一些功能并且速度快很多。

首先,read_table几乎代替了read.table。下面通过读取一个包含400万行的数据来比较它们的区别。点击下载该数据。

注:在演示之前简单说下我电脑的配置:win7,64位操作系统,8G内存,CPU A6双核。电脑配置不行,原文给出的实验时间甩了我好几条街。但不管怎样,在现有的条件下效率确实提高了很多。原文用时见末尾链接。

135929_ImI2_2605101.png

这些命令看上去非常相似,但是read.table花的时间是50.62秒,而read_table完成相同的任务只花了2.76秒。这是因为read_table把数据当做是固定格式的文件,并且使用C++快速处理数据。

R中的基础包utils也有读取固定宽度数据的函数,下面的示例就能体现出readr的亮点:

140057_ZG75_2605101.png

readr包的read_fwf函数用时3.97秒,而标准的read.fwf函数耗时1372秒。

readr包中的其它函数包括:read_csv读取逗号分隔的数据(欧洲用的是read_csv2函数),read_tsv读取制表符分隔数据,read_lines函数从文件中逐行读取数据(非常适合复杂的后期处理)。它还可以读取多种格式的日期时间列,智能的将文本数据读取为字符串(不再需要设置strings.as.factors=FALSE)。

对于Excel格式的数据,这里有。这个包提供的函数可以读取.xls和.xlsx格式的Excel工作表。虽然这里没有演示read_execl函数的使用,但是它跟readr中的函数一样都是基于C++库的,因此读取速度应该也很快。最重要的是,它没有任何的外部依赖,因此你可以在任意平台上用它来读取数据—不要求安装了Excel。

readr包已发布在上,readxl可以从安装。

本文由雪晴数据网负责翻译整理,原文请参考作者David Smith。转载请注明原文链接

转载于:https://my.oschina.net/u/2605101/blog/598331

你可能感兴趣的文章
apache 开机自启动
查看>>
Redhat nis client两种接入方式
查看>>
java和scala中>>和>>>
查看>>
mysql+keepalived基于业务的高可用
查看>>
JAVA代码实现多级树结构封装对象
查看>>
CentOS5 安装vsFtpd软件及配置
查看>>
设计师应该关注的科技发展方向(二)
查看>>
一个用perl写的发邮件的脚本
查看>>
透视学现象如何产生?
查看>>
redis python监控
查看>>
php趣味 - php 奥运五环
查看>>
Ext4 Disk Layout-2
查看>>
原 2017/5 JavaScript基础6--- 对象
查看>>
Python 列表、元组、字典t的常用方法
查看>>
MYSQL groupby使用方法。
查看>>
如何将ppt转换成pdf
查看>>
PowerDesigner连接MySQL数据库
查看>>
文件格式转换控件LEADTOOLS ePrint Professional
查看>>
ORACLE常见的六种RMAN恢复测试
查看>>
(Portal 开发读书笔记) Personalization
查看>>