在使用RI时遇到了一个奇怪的问题:我正在以下列方式处理日期:从数据库中读取数据到数据帧,填充缺失值,将数据分组和嵌套到组合主键,创建时间序列并为每个预测分组,取消组合并清理数据,将其写回数据库。
像这样的东西:qazxsw poi
对于小型数据集来说,这就像一个魅力,但是对于较大的数据集(超过大约100000个条目)我从R-Studio获得“R Session Aborted”屏幕,而nativ R GUI只是停止执行和内爆。我查看的每个日志文件中都没有信息。我怀疑这是某种(泄漏)内存问题。
作为一种解决方法,我正在使用for循环处理数据。但无论块大小多小,我都会得到“R Session Aborted”屏幕,这看起来很像泄漏内存。整个日期包括大约500万行。
我看了很多像https://cran.rstudio.com/web/packages/sweep/vignettes/SW01_Forecasting_Time_Series_Groups.html,ff
-Family和big
这样的软件包,基本上都是来自matter
,但是这个剂量似乎不适合https://cran.r-project.org/web/views/HighPerformanceComputing.html和tibbles
数据处理方式。
那么,如何改进我的脚本以处理大量数据?我怎样才能收集有关为什么R会话被中止的线索?
查看文章:
data science.拉/大批量涌入-安定-啊-very-BASIC-benchmark
有一个表格显示了您正在执行的一些数据争用任务的运行时比较。从表中可以看出,dplyr背后的data.table可能会比dplyr更好,后面有一个数据帧。
还有一个指向用于制作表格的基准测试代码的链接。
简而言之,尝试添加密钥,并尝试在dataframe上使用data.table。
要使tidyverse
成为您的密钥,并将您的data.table命名为x
,请使用dt
。
当Pakes回答处理所描述的问题时,我找到了解决潜在问题的方法。出于兼容性原因,我在3.4.3版本中使用了R.现在我正在使用更新的3.5.1版本,它运行得很好。