Как поймать предупреждение и при этом запустить выражение - PullRequest
0 голосов
/ 04 октября 2018

Я хочу перехватить предупреждение и все еще запустить выражение.

Вот пример:

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
  • ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...