Я хочу перехватить предупреждение и все еще запустить выражение.
Вот пример:
x <- 0
tryCatch({
x <- as.numeric("text") # this is NA and causes warning
}, warning = function(w) {
print("I am a message")
})
x
# x still 0
Предыдущий код перехватывает предупреждение и печатает сообщение, НО значение xвпоследствии не является NA, что означает, что выражение не запустилось из-за предупреждения.
Я мог бы выполнить выражение с suppressWarnings()
и <<-
следующим образом:
x <- 0
tryCatch({
x <- as.numeric("text")
}, warning = function(w) {
print("I am a message")
suppressWarnings(x <<- as.numeric("text"))
})
x
# now x is NA
IsЕсть ли более элегантный способ сделать это?может быть, один из следующих примеров?
- другая функция, отличная от
tryCatch()
- , или использование некоторого параметра
tryCatch()
- , или, возможно, другой пакет, отличный от base
- ...