這裏是我的問題:如何在列表中的循環中排除出錯的元素? (in R)
我正在使用循環在對象列表上運行函數。大多數物體都能正常工作併產生所需的輸出。但是,其他一些產生錯誤,當這種情況發生時,循環停止運行。
我想找到一種方式,每當循環找到一個給出錯誤的對象時,循環忽略有問題的對象並進入下一個對象。所以循環可以運行直到整個列表結束,只產生可以正常工作的對象的輸出。
我實現這樣的循環:
for(i in n:m){
myfunction
}
謝謝!
這裏是我的問題:如何在列表中的循環中排除出錯的元素? (in R)
我正在使用循環在對象列表上運行函數。大多數物體都能正常工作併產生所需的輸出。但是,其他一些產生錯誤,當這種情況發生時,循環停止運行。
我想找到一種方式,每當循環找到一個給出錯誤的對象時,循環忽略有問題的對象並進入下一個對象。所以循環可以運行直到整個列表結束,只產生可以正常工作的對象的輸出。
我實現這樣的循環:
for(i in n:m){
myfunction
}
謝謝!
的地方只是包裝什麼可能會失敗try()
for(i in n:m){
out[[i]] = try(myfunction)
}
out
可能會更好將try()
置於myfunction()
之內。但我不知道這個功能需要什麼。有時候,一個好的策略是預先指定你的輸出到NAS,然後在你的開始for循環問:
if("conditionwherefunctionfails") i = i+1
,這將只是跳過該迭代並繼續你的循環。
謝謝Seth!有效! – user18441 2013-02-25 22:30:41
很少去,但是你只需要一個if語句來識別麻煩的對象,什麼事都不做,否則執行你的函數:
for(i in n:m){
if (i != ...) { //replace ... with NaN or null, or whatever is causing the error
myfunction(i)
}
}
隨着信息有限,我不能告訴你應該怎樣是的...
謝謝你mjshaw。 – user18441 2013-02-25 22:31:07
你正在運行什麼對象?你的功能是做什麼的?什麼是錯誤?你的數據是什麼?請提供一個可重現的例子(你的錯誤)來解答這個問題。 – Arun 2013-02-25 21:47:57
你嘗試在try()中運行myfunction嗎? – Seth 2013-02-25 21:50:00
'嘗試()'似乎肯定是去... – juba 2013-02-25 21:59:34