将 R 与 tidyquant 和 massiv 数据一起使用

Using R with tidyquant and massiv data

我在使用 RI 时遇到了一个奇怪的问题: 我正在按以下方式处理日期: 将数据库中的数据读入数据框,填充缺失值,将数据分组并嵌套到组合主键,创建时间序列并为每个组进行预测,取消分组并清理数据,将其写回数据库。

是这样的: https://cran.rstudio.com/web/packages/sweep/vignettes/SW01_Forecasting_Time_Series_Groups.html

对于小数据集,这就像一个魅力,但对于更大的数据集(超过大约 100000 个条目),我确实从 R-Studio 获得 "R Session Aborted" 屏幕,nativ R GUI 只是停止执行并崩溃。 我查看过的每个日志文件中都没有任何信息。我怀疑这是某种(泄漏的)内存问题。

作为解决方法,我使用 for 循环以块的形式处理数据。但无论块大小多小,我都会看到 "R Session Aborted" 屏幕,这看起来很像内存泄漏。 整个日期由大约 500 万行组成。

我仔细研究了 ffbig-Family 和 matter 等软件包,基本上是 https://cran.r-project.org/web/views/HighPerformanceComputing.html 中的所有内容 但这种剂量似乎不适用于 tibblestidyverse 数据处理方式。

那么,如何改进我的脚本以处理大量数据? 我如何收集有关 R 会话为何中止的线索?

查看文章:

数据科学。la/dplyr-and-a-very-basic-benchmark

有一个 table 显示了您正在执行的一些数据整理任务的运行时比较。从 table 来看,似乎后面带有 data.table 的 dplyr 可能比后面带有数据帧的 dplyr 做得更好。

用于制作 table 的基准测试代码也有一个 link。

简而言之,尝试添加一个键,并尝试在数据帧上使用 data.table。

要使 x 成为您的密钥,并假设您的 data.table 名为 dt,请使用 setkey(dt,x).

虽然 Pakes 的回答解决了所描述的问题,但我找到了解决潜在问题的方法。出于兼容性原因,我在 3.4.3 版本中使用了 R。现在我正在使用更新的 3.5.1 版本,它工作得很好。