5
我想將一個函數(「foo」用於此解釋)轉換爲另一個數據向量。該功能將數據作爲輸入,並需要將表單提交給網頁。有時候,這很快,而其他時候,這可能會很長時間。我想運行for循環(或等價的應用函數),以跳過花費太長時間的項目。我曾嘗試使用跳到下一個5秒前限制循環運行時間如下:限制函數在R for循環中處理的時間
pb <- txtProgressBar(min = 1, max = 100, style = 3)
storage <- matrix(nrow = sample.length, ncol = 2)
for(i in 1:100){
s <- Sys.time()
storage[i,] <- try(foo(data.vec[i]), TRUE)
if (Sys.time() - s >5) {next}
# update progress bar
setTxtProgressBar(pb, i)
}
close(pb)
我想,我不能瞭解如何應用「下一個」條件在for循環中。已經搜尋找到一個更清晰的解釋,但沒有在這裏得到任何運氣。
您的foo()在完成之前不會返回到Sys.time。我想要實現跳過,你必須在foo函數中添加類似的代碼;或者在單獨的線程中運行foo,但這並不容易。 – 2011-12-28 07:02:58
'evalWithTimeout'示例就是要走的路。否則:或許你用來調用網頁(或其他)的實際功能有一個內置的超時參數?值得深入研究的文件,如果你還沒有這樣做。 – 2011-12-28 16:18:25