Многоядерный и 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
вместо того, чтобы хранить их в списке, что я и сделал выше.