如何使用语句“next”/“break”与foreach

问题描述:

当我使用for循环时,我通常有if构造与nextbreak语句。解决一些问题和逻辑步骤只是需要。但是,我无法在foreach包中使用next,break语句。我怎样才能在foreach循环结构中使用这些语句?如何使用语句“next”/“break”与foreach

+0

[下一个革命R的foreach包?]可能的重复?(http://*.com/questions/7707467/next-with-revolution-rs-foreach-package) – 989

使用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,但是这无异于纳米/微秒,你总计算以秒/分钟计。