在处理非常大的小故障时,我有哪些选择?

时间:2019-01-16 14:40:18

标签: r tidyverse tibble

我正在对来自多个来源(多个大型CSV,大于500mb)的数据进行一些预处理,进行一些转换,最后得到一个最终的小数据集,该数据集以整洁的“格式”包含了我需要的所有数据。 ”在预处理结束时,我将最后的小节保存为.RData文件,稍后将其导入以进行后续的统计分析。

问题在于,tibble数据集非常大(R工作区中占用5gb内存),并且保存和加载非常慢。我没有及时测量它,但是即使使用compress = FALSE也要花费15分钟以上的时间来保存该对象。

问题:我是否有任何(理想情况下很简单)的选择来加快这些速度?我已经检查过了,小标题中的数据类型都应该是应该的(字符是字符,数字是dbl等)

谢谢

1 个答案:

答案 0 :(得分:0)

read_csv和其他tidyr函数不是最快的,但是它们使事情变得非常简单。根据您对问题的评论,data.table :: fread是加快将数据导入数据帧的绝佳选择。它比read_csv ~7x faster大。然后可以使用dplyr :: as_tibble将这些数据帧轻松更改为小标题。您甚至可能甚至不需要在处理之前将数据帧更改为小标题,因为大多数tidyverse函数将接受数据帧输入并为您提供小标题输出。