为什么ddply命令在进度条达到100后需要这么长时间?

时间:2015-11-25 10:04:30

标签: r bigdata plyr

我有一个10000行的数据文件。该文件包含100行的块,在第一列中具有不同的因子,我使用ddply来处理它们。例如:

result.df = ddply(data.df, "V1", calc_stuff, .progress = "text")
message("done!")

ddply进度条大约需要一分钟才能达到100%。然而,R确实"东西"在处理脚本中的下一行之前另外5-7分钟(在此示例中打印消息)。

那段时间R在做什么?将结果收集到" result.df"?我可以以某种方式加快速度吗?我有很多这样的文件要处理。

1 个答案:

答案 0 :(得分:2)

app = Celery('my_proj')采用以下方法:

  1. 拆分数据集。
  2. 将功能应用于拆分的每个组件
  3. 将组件合并为一个大结果数据集
  4. 进度条可能涉及第2步,并说明处理每个块的距离。第3步是您的情况需要时间,并且不包含在进度条中。

    为了加快分析速度,我将停止使用ddply并开始使用plyr。这比dplyr快几个数量级,并且是plyr的后继者。有关更多信息,请参阅tutorial I wrote

    您的代码示例将归结为:

    plyr