前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【R语言】data.table让你的读取速度提升百倍

【R语言】data.table让你的读取速度提升百倍

作者头像
生信交流平台
发布2020-08-05 10:27:51
1.5K0
发布2020-08-05 10:27:51
举报
文章被收录于专栏:用户7627119的专栏

不知道大家有没有用read.table和read.csv读取过文件,当文件不大的时候你可能还感觉不出读取速度,但是当文件比较大的时候,比如有上万行的时候,你就会感觉到等待时间明显变长,甚至无法忍受。

今天小编给大家安利一个实用的R包data.table, 这个包可以明显的提升大文件的读取速度。下面我们就来做一个实验。我们随机生成一个100万行10列的文件,保存到你的电脑上,文件的大小可以达到173MB。接下来我们分别用传统的read.csv和data.table包里面的fread函数来读取这个超大的文件,然后比较两种方法的读取速度。

代码语言:javascript
复制
# 加载data.table包
library(data.table)

# 数据读取性能对比分析
# Create a large .csv file
set.seed(100)
m <- data.frame(matrix(runif(10000000), nrow=1000000))
write.csv(m, 'm2.csv', row.names = F)
# Time taken by read.csv to import
system.time({m_df <- read.csv('m2.csv')})
# Time taken by fread to import
system.time({m_dt <- fread('m2.csv')})

我们可以看到传统的read.csv读取该文件所需要的时间为48.84秒,而利用data.table包中的fread函数来读取只需要0.47秒,速度整整提升了100倍。

代码语言:javascript
复制
> # Time taken by read.csv to import
> system.time({m_df <- read.csv('m2.csv')})
 用户  系统  流逝 
48.84  1.09 50.72 
> # Time taken by fread to import
> system.time({m_dt <- fread('m2.csv')})
用户 系统 流逝 
0.47 0.08 0.31

大家赶紧试试吧!

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

本文分享自 生信交流平台 微信公众号,前往查看

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

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

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