这是一个示例输入数据,一个简化的功能。
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等)