foreach找不到foreach中使用的`i`(i = 1:N)

时间:2016-06-11 09:13:38

标签: r foreach

我对/(\b201[2-5]\b)/g 内的变量遇到了一些麻烦。我加载了集群并设置了几个向量:

foreach

然后,它不起作用:

library(doParallel)
ncores <- detectCores() - 2
cl <- makeCluster(ncores, outfile="", port=11439)
registerDoParallel(cl)    

results <- rep(NA,10)
values <- 20:30

虽然这样做:

# Error: object 'i' not found
foreach(i=1:10) %dopar% 
  results[i] <- i

stopCluster(cl)

如果它在左侧的# ok foreach(i=1:10) %dopar% values[i] stopCluster(cl) 内使用时找到i怎么样,但在右侧使用时却找不到它?

1 个答案:

答案 0 :(得分:3)

来自我的评论:

用花括号试试。

foreach(i=1:10) %dopar% {
  results[i] <- i
}

不仅仅是这个例子,我经历过在R中使用花括号更好。使用它们可以避免许多问题。显然,这些小帮手有一些优势,正如您在浏览互联网时可能看到的那样(例如see here)。