Вы можете использовать setTimeLimit
(это часть базы R):
setTimeLimit({
Sys.sleep(7)
}, elapsed = 5)
Если ограничение по времени достигнуто, функция выдаст ошибку (например, если вы запустите вышеуказанное, обработка займет 7 секунд, но ограничение будет 5). Вы можете связать это с try
, чтобы обработать ошибку и продолжить цикл:
myerror <- try({
setTimeLimit({
Sys.sleep(7)
}, elapsed = 5)
}, silent = TRUE)
class(myerror)
#[1] "try-error"
Затем используйте оператор if-else, чтобы проверить, была ли ошибка, и продолжайте. Что-то вроде:
if (class(myerror) == 'try-error') {
next
}