【问题标题】:Only the first task executes when using "foreach" loop in R在 R 中使用“foreach”循环时,仅执行第一个任务
【发布时间】:2021-03-29 19:19:23
【问题描述】:

我在 R 中尝试使用 foreach。但是,我发现只执行了 foreach 循环中的最后一条指令。

如何让两条指令都执行。下面是我的一段非常简单的代码。

foreach (i=1:10) %dopar% {
  
  paste("Jimmy")
  paste("bobby")

}

结果如下;

[[1]]
[1] "bobby"

[[2]]
[1] "bobby"

[[3]]
[1] "bobby"

[[4]]
[1] "bobby"

.....

我原以为结果会同时包含“Jimmy”和“Bobby”...我该如何做到这一点?

【问题讨论】:

  • c("Jimmy", "Bobby")?
  • 感谢 Flimzy。但正如我之前所说,我真正的问题是如何让两个指令都执行。

标签: r foreach doparallel


【解决方案1】:

你可以从magrittr包中尝试%>%

foreach(i=1:3) %dopar%{
  paste("Jimmy") %>%
  paste("bobby")
}

#[[1]]
#[1] "Jimmy bobby"

#[[2]]
#[1] "Jimmy bobby"

#[[3]]
#[1] "Jimmy bobby"

另一个例子:

foreach(i=1:3, .combine=c) %dopar%{
sample(1:10, 1) %>% 
print %>% 
sqrt
}
#[1] 3
#[1] 4
#[1] 6
#[1] 1.732051 2.000000 2.449490

【讨论】:

    猜你喜欢
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 2016-09-28
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多