7

multicore関数parallelを使用しようとしてdata.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オブジェクトがなくなって a を実行できなかった理由は、それらリストに格納するのではなく、それらcollectに変換していたためです。これは私が上で行ったことです。list

于 2013-04-30T20:44:41.763 に答える