我有这个代码,我想要对矩阵的列求和。
我也希望有一些功能(我的矩阵比下面的例子大得多):
我在pbapply包中尝试了pbapply
但没有运气。我的代码是:
library(pbapply)
library(parallel)
mat <- matrix(ncol=20, nrow = 50, data = runif(1000))
# sum of the columns
matsum <- apply(mat,2,sum)
# now the same in parallel
cl <- makeCluster(2)
pboptions(type = "txt")
parmat <- pbapply(mat,2,sum, cl=cl)
stopCluster(cl)
这会导致错误:
FUN中的错误(newX [,i],...):无效&#39;键入&#39;参数(列表)
我的问题是,是否有可能并行运行pbapply?
答案 0 :(得分:1)
pbapply
不接受cl
参数,所以没有。但是,您可以将矩阵转换为data.frame(如果可行),并使用sapply,它应该适用于列。
mat <- as.data.frame(mat)
parmat <- pbsapply(X = mat, FUN = sum, cl = cl)
或者,您可以尝试
colSums(mat)
这是非常拉扯的主力。
答案 1 :(得分:1)
pbapply::pbapply
接受cl
参数(参见NEWS)