Многоядерный и data.table в R

Я пытаюсь использовать 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 объекты. Как это сделать?

1 ответ

Я думаю, что это в соответствии с тем, что вы хотите:

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

Причина, по которой у вас не было parallel объекты больше и не могли запустить collect потому что вы конвертировали их в listвместо того, чтобы хранить их в списке, что я и сделал выше.

Другие вопросы по тегам