首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对tidyquant和massiv数据使用R

对tidyquant和massiv数据使用R
EN

Stack Overflow用户
提问于 2018-07-25 19:08:21
回答 2查看 131关注 0票数 2

在使用R时,我遇到了一个奇怪的问题:我正在以以下方式处理数据:从数据库中读取数据到数据帧中,填充缺少的值,将数据分组和嵌套到一个组合的主键中,创建一个时间序列并为每个组预测它,解组和清理数据,将其写回DB。

类似这样的东西:https://cran.rstudio.com/web/packages/sweep/vignettes/SW01_Forecasting_Time_Series_Groups.html

对于较小的数据集,这很有吸引力,但对于较大的数据集(超过100000个条目),我确实会从R-Studio看到"R会话中止“屏幕,而nativ R GUI只是停止执行和内爆。我没有查看过的每个日志文件中都有信息。我怀疑这是某种(泄漏)内存问题。

作为一种变通方法,我使用for循环处理数据块。但是,无论区块大小有多小,我都会看到"R会话已中止“屏幕,这看起来很像是内存泄漏。整个日期由大约500万行组成。

我研究了很多像ffbig-Family和matter这样的包,基本上所有来自https://cran.r-project.org/web/views/HighPerformanceComputing.html的东西,但这似乎不能很好地与tibblestidyverse的数据处理方式一起工作。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-25 20:50:52

请访问以下地址查看本文:

datascience.la/dplyr-and-a-very-basic-benchmark

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

还有一个链接指向用于制作该表的基准测试代码。

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

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

票数 1
EN

Stack Overflow用户

发布于 2018-09-07 16:18:24

当Pakes处理所描述的问题时,我找到了潜在问题的解决方案。出于兼容性原因,我在3.4.3版本中使用了R。现在我使用的是较新的3.5.1版本,它工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51517395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档