Как я могу перенаправить 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. Вы можете использовать это в любой выходной функции для прямого вывода там.