R 调用aaply导致因子级错误消息
我正在修改r代码以使用并行处理。我将这些库称为“plyr”,R 调用aaply导致因子级错误消息,r,parallel-processing,plyr,R,Parallel Processing,Plyr,我正在修改r代码以使用并行处理。我将这些库称为“plyr”,“compiler”,“doParallel”,“foreach”。然后使用makeCluster(),registerDoParallel()在两个内核上设置处理。完成后,我调用了函数aaply()。然而,我得到了一个factor()函数典型的消息错误 我检查了是否省略了函数makeCluster()、registerDoParallel()的任何相关指令,以启用aaply()的正确应用程序 此外,此调用是在循环或任何其他迭代指令块之
“compiler”
,“doParallel”
,“foreach”
。然后使用makeCluster()
,registerDoParallel()
在两个内核上设置处理。完成后,我调用了函数aaply()
。然而,我得到了一个factor()函数典型的消息错误
我检查了是否省略了函数makeCluster()、registerDoParallel()的任何相关指令,以启用aaply()的正确应用程序
此外,此调用是在循环或任何其他迭代指令块之外进行的
多核条件下的并行处理
Cores 1 | is.na(Cores)==FALSE){
cl您可以添加示例数据和什么是column.gsdlm.c
?当然可以。增广的.Y是二项式(0,1)的Y矩阵的组合值与更小的连续值矩阵Eta.m相结合,Y为观测数据,Eta.m为潜在变量。θ.m是一个外部调用的潜在变量向量,例如,它已经存在于内存中。column.gsdlm.c是一个生成对数似然值的sumproduct运算。其思想是生成一个值向量(LL.items.old)比“简单”应用调用快。@Steve抱歉,这里是一个数据Y=n x p,矩阵,n=100,p=10的示例,如第1行1010000000…Eta.m=2 x p,矩阵-1.7 1.9 2.4。。。。
Cores <- detectCores(logical = FALSE) # pick up cores in the system running the code
if (Cores > 1 | is.na(Cores) == FALSE) {
cl <- makeCluster(Cores) # set computer clusters according to cores
registerDoParallel(cl, cores = Cores) # initialize parallelization
multicore <- TRUE } else multicore <- FALSE
Augmented.Y <- rbind(Eta.m, Y)
# stop("check aaply")
LL.items.old <- aaply(Augmented.Y,
2,
function(x) {
y.col <- x[-(1:dim(Eta.m)[1])]
eta <- x[1:dim(Eta.m)[1]]
ll <- column.gsdlm.c(y.col, eta, theta.m) },
.inform = TRUE,
.parallel = multicore)