7

我正在尝试使用multicore功能paralleldata.table但我无法想出正确的方法来做到这一点。代码:

require(multicore)
require(data.table)
dtb = data.table(a=1:10, b=1:2)
x = dtb[,parallel(a+1),by=b]

> x
   b   pid fd
1: 1 12243  3
2: 1 12243  6
3: 2 12247  4
4: 2 12247  8

我想呼吁collect()这一点,但这些不再是parallel对象。应该如何做到这一点?

4

1 回答 1

4

我认为这符合您的要求:

collect(dtb[, list(jobs = list(parallel(a+1))), by = b][, jobs])

您不再拥有parallel对象并且无法运行 acollect的原因是因为您将它们转换a list,而不是将它们存储列表中,这就是我在上面所做的。

于 2013-04-30T20:44:41.763 回答