r - 接下来使用Revolution R的foreach软件包?

标签 r foreach parallel-processing next

我浏览了很多文档,并做了很多谷歌搜索,但是找不到以下问题的答案:有没有一种方法可以使用foreach包在并行的foreach循环中引入“类似下一个”功能?

具体来说,我想做类似的事情(这与next无关,但没有):

foreach(i = 1:10, .combine = "c") %dopar% {
    n <- i + floor(runif(1, 0, 9))
    if (n %% 3) {next}
    n
}

我意识到我可以嵌套括号,但是如果我想在较长的循环中遇到一些下一个条件,这很快就会成为语法梦m。

这里有一个简单的解决方法(类似下一个功能或解决问题的另一种方式)吗?

最佳答案

您可以将代码放入函数中,然后调用return。从您的示例中尚不清楚在n %% 3时要执行的操作,因此我将返回NA

funi <- function(i) {
  n <- i + floor(runif(1, 0, 9))
  if (n %% 3) return(NA)
  n
}
foreach(i = 1:10, .combine = "c") %dopar% { funi(i) }

关于r - 接下来使用Revolution R的foreach软件包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7707467/

相关文章:

r - 将整数序列 1, 2, 3, ... 转换为相应的字符串序列 A, B, C,

c# - 为什么在 C# 中进行基于模式的编程

c# - 推荐的 C# 4.0 多线程/并行计算书籍

multithreading - Delphi Threading/PPL-在TTask.Run或TThread.CreateAnonymousThread中将Timer.Enabled设置为True后,永远不会触发OnTimer事件

c# - 并行运行异步方法 8 次

R 函数 read.csv 失败, "scan() expected ' 是一个真实的',得到......“消息

在预测中收到 "Variable Lengths Differ"错误

r - 将元数据添加到 Seurat 对象

powershell - 如何使用PowerShell删除目录中的所有文件和所有小于100kb的子目录

java - 在 JSTL 中显示列表元素 <c :/forEach> with counter variable