我将问题简化到下面,我知道在正常情况下,我不会使用嵌套的foreach
循环,而我应该真正使用嵌套的for循环。但是,我想知道如何使用foreach
循环来完成此操作,或者这是不可能的吗?
processedAndTransformed <- function(j){
df <- rnorm(25)
return(matrix(df * j,ncol=1) )
}
# in normal circumstances, use for loop
for(j in c(2,4,7,9)){
res <- foreach(i = 1:4,.combine = "cbind")%dopar%{
processedAndTransformed(j)
}
write.csv(res,file=paste("testing",j,".csv",sep=""))
}
现在,我尝试将外部for循环转换为foreach
循环。 请注意,** write.csv
函数在外部foreach
循环内部,但在内部循环外部。
# below code fails
foreach(j = c(2,4,7,9))%:%
res <- foreach(i = 1:4,.combine = "cbind")%dopar%{
processedAndTransformed(j)
}
write.csv(res,file=paste("testing",j,".csv",sep=""))
整个事情失败了。我不明白为什么以及如何纠正它。
更新:应该正在写入其他文件。