如何使用陈述" next" /" break"与foreach

时间:2016-09-18 10:07:54

标签: r if-statement parallel.foreach

当我使用for循环时,我通常会使用ifnext语句构建break。解决一些问题和逻辑步骤只需要这样做。但是,我无法在next包中使用breakforeach语句。如何在foreach循环结构中使用这些语句?

1 个答案:

答案 0 :(得分:0)

使用foreach包时的一般想法是每次迭代都可以并行执行;因此,如果您有N次迭代和N CPU,您将获得(忽略线程通信)完美的加速。

因此,不要使用break,而是尽早返回NA0。例如

library("foreach")
f = function(i) if(i < 3) sqrt(i) else NA
foreach(i=1:5) %do% f(i)

现在你可能会说你浪费了i=4i=5的资源,但这相当于纳米/微秒,你的总计算量是以秒/分钟为单位。