Как подавить предупреждения глобально в R Script


174

У меня есть длинный R-скрипт, который выдает некоторые предупреждения, которые я могу игнорировать. Я мог бы использовать

suppressWarnings(expr)

для разовых заявлений. Но как я могу подавить предупреждения в R во всем мире? Есть ли вариант для этого?

Ответы:


229

Вы могли бы использовать

options(warn=-1)

Но учтите, что отключение предупреждающих сообщений во всем мире может быть не очень хорошей идеей.

Чтобы снова включить предупреждения, используйте

options(warn=0)

(или для чего по умолчанию warn, см. этот ответ )


5
Это работает, но подход Франческо Наполитано от 22 сентября 2015 года является более безопасным и более применимым в глобальном масштабе методом.
Энди Клифтон

Я согласен с @Andy, и его ответ должен быть помечен как принятый.
JASC

106

Вы хотите options(warn=-1). Однако обратите внимание, что warn=0это не самый безопасный уровень предупреждения, и его не следует считать текущим, особенно в сценариях или функциях. Таким образом, самый безопасный способ временного отключения предупреждений:

oldw <- getOption("warn")
options(warn = -1)

[your "silenced" code]

options(warn = oldw)

41

Я заменил printfзвонки на звонки warningв C-коде сейчас. Он будет действовать в версии 2.17.2, которая должна быть доступна завтра вечером. Тогда вы сможете избежать предупреждений с помощью suppressWarnings()любого из вышеперечисленных методов.

suppressWarnings({ your code })

6
это правильный способ сделать это. Должен быть отмечен как ответ.
Денис

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.