Я выполняю сложную функцию (множественное вменение с Амелией) над списком наборов данных. Время от времени набор данных вызывает длинный список предупреждений, которые в конечном итоге приводят к ошибке. Я бы хотел, чтобы R сдался, как только появится первое предупреждение, и перешел к следующему набору данных. Вот минимальный рабочий пример:
df.list <- list(
data.frame(1:4),
data.frame(-1, -2, -4),
data.frame(10:15)
)
for(df in df.list){
ans <- sum(sapply(df, sqrt))
print(ans)
}
Сценарий выдает три предупреждения о NaN, а затем печатает:
[1] 6.146264
[1] NaN
[1] 21.1632
Я бы хотел, чтобы он выдал 1 сообщение input 2 failed
и затем выведет только действительные результаты:
[1] 6.146264
[1] 21.1632
(функция, которую я выполняю, amelia (), выдает предупреждения в течение 10 минут, прежде чем, наконец, выдает ошибку, поэтому я хотел бы отключить ее при первом предупреждении .)