在 R 中使用"foreach"循环时,仅执行第一个任务



我正在R中试用foreach。然而,我发现只有foreach循环中的最后一条指令被执行。

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

foreach (i=1:10) %dopar% {

paste("Jimmy")
paste("bobby")
}

结果如下:;

[[1]]
[1] "bobby"
[[2]]
[1] "bobby"
[[3]]
[1] "bobby"
[[4]]
[1] "bobby"
.....

我本希望结果包含两个";吉米"鲍比;。。。我该怎么做?

您可以从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

最新更新