Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 调用aaply导致因子级错误消息_R_Parallel Processing_Plyr - Fatal编程技术网

R 调用aaply导致因子级错误消息

R 调用aaply导致因子级错误消息,r,parallel-processing,plyr,R,Parallel Processing,Plyr,我正在修改r代码以使用并行处理。我将这些库称为“plyr”,“compiler”,“doParallel”,“foreach”。然后使用makeCluster(),registerDoParallel()在两个内核上设置处理。完成后,我调用了函数aaply()。然而,我得到了一个factor()函数典型的消息错误 我检查了是否省略了函数makeCluster()、registerDoParallel()的任何相关指令,以启用aaply()的正确应用程序 此外,此调用是在循环或任何其他迭代指令块之

我正在修改r代码以使用并行处理。我将这些库称为“plyr”,
“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)