Как я могу перенаправить предупреждающие сообщения R в STDOUT? - PullRequest
10 голосов
/ 06 ноября 2010

Я использую Grid Engine для запуска R скриптов. STDERR воспринимается всерьез при этой настройке, поэтому я хотел бы сохранить его в чистоте и иметь только реальные / серьезные / фатальные ошибки, напечатанные в STDERR.

Проблема в том, что мой R-скрипт генерирует различные сообщения STDERR, которые не являются серьезными предупреждениями ... например, scan, кажется, выводит в STDERR количество прочитанных им элементов.

Могу ли я перенаправить (изнутри R) STDERR в STDOUT?

Ответы [ 2 ]

6 голосов
/ 06 ноября 2010

Посмотрите на странице справки для sink():

‘сток’ перенаправляет выход R на соединение. Если «файл» является символом строка, файловое соединение с этим именем будет установлено для Продолжительность диверсии.

Нормальный выход R (для подключения «stdout») отклоняется по умолчанию ‘type =" output "’. Только подсказки и (большинство) сообщений продолжать появляться на консоли. Сообщения, отправленные ‘stderr ()’ (в том числе из «сообщения», «предупреждения» и «остановки») могут быть переадресовано ‘раковиной (тип =" сообщение ")" (см. ниже).

2 голосов
/ 06 ноября 2010

@ Дирк уже дал ответ, но я бы просто добавил, что вы можете использовать stdout() для подключения к STDOUT.Вы можете использовать это в любой функции вывода для прямого вывода туда.

...