【发布时间】:2021-09-23 20:19:52
【问题描述】:
我正在尝试在 R 中为我的一个项目应用 foreach 循环,因为 for 循环需要很长时间才能输出。问题是 foreach 循环不会更新内存并返回 NA 值。我发现在使用 R 的 bigstatsr 包的 FBM 函数创建矩阵时可以排除这种情况,但我有一个处理数组而不是二维矩阵的代码。这是代码
for (z in 1:100){
ft <- array(NA,c(x,y,length(beta),r) #x, y, beta are defined
foreach (jj = 1:y)%:%
foreach (r in 1:length(beta) %dopar% {
model.1 <- bvar() #a random statitical model function
ft[,jj,,r] <- model.1$pred[,1,k] # model.1$pred is itself an array
}
dimnames(ft)[[2]] <- cN
save(ft, file = paste0(foldername,"/", formatC(run, width=2, flag=0), ".RData"))
}
现在的问题是 foreach 循环只为我的 ft 数组返回 NA 值,因为它不会更新内存。我能做些什么来让它工作吗?或者我可以通过将矩阵更改为数组来使用 FBM 函数的某种方式。
【问题讨论】: