Как изменить настройку предупреждения?

Я пытаюсь отладить функцию. Я хотел бы отображать предупреждения, когда они возникают, но я не понимаю, как изменить настройки предупреждения.

Ответы

Ответ 1

Set

options(warn=1)

Подробнее в ?options

Ответ 2

Может быть полезно указать

options(warn=2, error=recover)

Как упоминалось @plannapus, warn=2 будет обновлять предупреждения до ошибок; error=recover переместит вас в режим отладки/браузера в точке, где произошло предупреждение (теперь обновление до ошибки). (Используйте options(warn=0, error=NULL) для восстановления исходных настроек.)

Ответ 3

На странице справки для options:

warn: устанавливает обработку предупреждающих сообщений. Если warn отрицательно, все предупреждения игнорируются. Если warn равно нулю (по умолчанию), предупреждения сохраняются до тех пор, пока функция верхнего уровня не вернется. Если было сообщено менее 10 предупреждений, они будут напечатаны иначе, если будет указано, сколько (максимум 50) было сигнализировано. Создается объект с именем last.warning и может быть напечатан с помощью функции warnings. Если warn - одно, предупреждения печатаются по мере их возникновения. Если warn равно двум или больше, все предупреждения превращаются в ошибки.

Итак options(warn=1) должен печатать предупреждения по мере их возникновения.

В противном случае функция traceback() (после неопознанной ошибки) показывает вам, какая подпрограмма потерпела неудачу (точнее "последовательность вызовов, которые приводят к ошибке" ).