Как я могу перенаправить R предупреждающие сообщения в STDOUT?
Я использую механизм grid для запуска R-скриптов. STDERR серьезно относится к этой установке, поэтому я хотел бы сохранить ее в чистоте и иметь только реальные/серьезные/смертельные ошибки, напечатанные в STDERR.
Проблема заключается в том, что мой R script генерирует различные сообщения STDERR, которые не являются действительно серьезными предупреждениями... например, scan
, кажется, печатает в STDERR количество прочитанных элементов.
Можно ли перенаправить (из R) STDERR в STDOUT?
Ответы
Ответ 1
Посмотрите справочную страницу sink()
:
'sink переключает вывод R на соединение. Если 'файл является символом string, соединение с этим именем будет установлено для продолжительность переадресации.
Выход нормального R (к соединению 'stdout) отклоняется default 'type = "output". Только подсказки и (большинство) сообщений продолжают появляться на консоли. Сообщения, отправленные в 'stderr() (в том числе сообщения "сообщение", "предупреждение" и "остановка" ) могут быть переадресован 'sink (type = "message" ) (см. ниже).
Ответ 2
@Dirk уже предоставил ответ, но я бы добавил, что вы можете использовать stdout()
для подключения к STDOUT. Вы можете использовать это в любой выходной функции для прямого вывода там.