R data.table并行行式操作

时间:2019-02-14 03:57:55

标签: r parallel-processing data.table

这是一个示例输入数据,一个简化的功能。

require(data.table)
sampleDT <- data.table(c1 = c(1,2,3), c2 = c(4,5,6))
print(sampleDT)
   c1 c2
1:  1  4
2:  2  5
3:  3  6
testF <- function(x = NULL, y = NULL) {
  return(list(x+y,x))
}

resultCol <- c("r1","r2")
sampleDT[, (resultCol) := testF(c1,c2), by = seq(nrow(sampleDT))]
print(sampleDT)
   c1 c2 r1 r2
1:  1  4  5  1
2:  2  5  7  2
3:  3  6  9  3

实际函数无法轻易向量化,它返回一个1 * n列表。

我正在为此行和逐行操作寻找并行解决方案。另外,如果有多种方式来构建并行进程,那么速度是最优化的?

请留下一些示例代码,因为我对语法不熟悉(例如,foreach,mclapply等)

0 个答案:

没有答案