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