处理非常大的 tibbles 时,我有哪些选择?
What are my options when dealing with very large tibbles?
我正在对来自多个来源(多个大型 CSV,超过 500mb)的数据做一些 pre-processing,应用一些转换并最终得到一个最终的 tibble 数据集,其中包含我需要的所有数据整洁 "format." 在那个 pre-processing 结束时,我将最后的 tibble 保存为 .RData 文件,稍后导入该文件以进行后续统计分析。
问题是 tibble 数据集非常大(在 R 工作区占用 5gb 内存)并且保存和加载非常慢。我没有及时测量它,但它需要超过 15 分钟才能保存 object,即使使用 compress = FALSE。
问题:我有任何(最好是简单的)选项来加快这一切吗?我已经检查过,小标题中的数据类型都是应该的(字符是charecter,数字是dbl等)
谢谢
read_csv 和其他 tidyr 函数不是最快的,但它们使事情变得非常简单。根据对您问题的评论,data.table::fread 是加速将数据导入数据框的绝佳选择。比 read_csv~7x faster。然后可以使用 dplyr::as_tibble 轻松地将这些数据帧更改为 tibbles。您甚至可能不需要在处理之前将数据帧更改为 tibble,因为大多数 tidyverse 函数将接受数据帧输入并为您提供 tibble 输出。
我正在对来自多个来源(多个大型 CSV,超过 500mb)的数据做一些 pre-processing,应用一些转换并最终得到一个最终的 tibble 数据集,其中包含我需要的所有数据整洁 "format." 在那个 pre-processing 结束时,我将最后的 tibble 保存为 .RData 文件,稍后导入该文件以进行后续统计分析。
问题是 tibble 数据集非常大(在 R 工作区占用 5gb 内存)并且保存和加载非常慢。我没有及时测量它,但它需要超过 15 分钟才能保存 object,即使使用 compress = FALSE。
问题:我有任何(最好是简单的)选项来加快这一切吗?我已经检查过,小标题中的数据类型都是应该的(字符是charecter,数字是dbl等)
谢谢
read_csv 和其他 tidyr 函数不是最快的,但它们使事情变得非常简单。根据对您问题的评论,data.table::fread 是加速将数据导入数据框的绝佳选择。比 read_csv~7x faster。然后可以使用 dplyr::as_tibble 轻松地将这些数据帧更改为 tibbles。您甚至可能不需要在处理之前将数据帧更改为 tibble,因为大多数 tidyverse 函数将接受数据帧输入并为您提供 tibble 输出。