2016-09-18 56 views
-2

當我使用for循環時,我通常有if構造與nextbreak語句。解決一些問題和邏輯步驟只是需要。但是,我無法在foreach包中使用next,break語句。我怎樣才能在foreach循環結構中使用這些語句?如何使用語句「next」/「break」與foreach

+0

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

回答

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,但是這無異於納米/微秒,你總計算以秒/分鐘計。