data.table:行方式函数的并行执行

时间:2016-12-06 12:12:12

标签: r parallel-processing data.table

我想将函数应用于data.table的每一行中的某些列。我这样做是这样的:

require(data.table)

## create some random data
n = 1000
p = 1000
set.seed(1)
data.raw <- matrix(rnorm(n*p), nrow = n, ncol = p)
rownames(data.raw) <- lapply(1:n, FUN = function(x, length)paste(sample(c(letters, LETTERS), length, replace=TRUE), collapse=""), length = 10)
colnames(data.raw) <- samples <- paste0("X", 1:n)
data.t   <- data.table(data.raw)
data.t[, id := rownames(data.raw)]
setkey(data.t, id)

# apply function for each row
f <- function(x){return(data.frame(result1 = "abc", result2 = "def"))}
data.t[, c("result1", "result2") := f(.SD), .SDcols = samples, by = id]

是否有任何(简单)方法可以为data.table中的每个f并行执行id? 我知道这里有一些关于data.table并行化的问题,但我找不到任何一个好的答案。

0 个答案:

没有答案