У меня сложная, длинная функция, которую я использую для моделирования. Он может генерировать ошибки, в основном связанные с случайными векторами, заканчивающимися равными значениями с нулевой дисперсией, получая питание либо в СПС, либо в логистических регрессиях.tryCatch со сложной функцией и plyr в R
Я выполняю его на кластере, используя doMC
и plyr
. Я не хочу tryCatch
каждой мелочи внутри функции, потому что возможностей для ошибок много, а вероятности каждого из них малы.
Как я могу попробовать каждый прогон, а не tryCatch
Ввод каждой маленькой строки? Код что-то вроде этого:
iteration = function(){
a really long simulation function where errors can happen
}
reps = 10000
results = llply(1:reps, function(idx){out<-iteration()},.parallel=TRUE)
EDIT приблизительно год спустя: пакет foreach
делает это значительно проще, чем с plyr
library(foreach)
output <- foreach(i=1:reps, .errorhandling = 'remove')%dopar%{
function
}