Как вы печатаете на stderr в R? - PullRequest
47 голосов
/ 10 июля 2009

Как вы печатаете до stderr в R?

Это особенно полезно для сценариев, написанных на Rscript.

Ответы [ 4 ]

51 голосов
/ 10 июля 2009

На самом деле у меня работает следующее:

write("prints to stderr", stderr())

write("prints to stdout", stdout())
11 голосов
/ 18 декабря 2014

Вот более гибкая версия для отладки / подробного использования в Rscript. Он не только печатает в stderr, как вы просите, но также позволяет передавать переменное число аргументов, типов и т. Д., Как printf делает.

v <- function(...) cat(sprintf(...), sep='', file=stderr())

Теперь можно делать такие вещи, как:

v("name: %s  age: %d\n", name, age)

и т.д.

7 голосов
/ 10 июля 2009

Можно ли настроить печать функция для печати в stderr?

От самого Рипли :

Нет, но куда идет стандартный вывод контролируется раковиной (), так что вы можете добиться того же эффекта. R внутри понятия не имеет, из чего получается print () (который не только один функции, но сотни методов).

2 голосов
/ 07 марта 2018
message('for writing diagnostic info to standard error')
Сообщение

используется для генерации «простых» диагностических сообщений, которые не являются ни предупреждениями, ни ошибками, но, тем не менее, представлены как условия. В отличие от предупреждений и ошибок, последний перевод строки рассматривается как часть сообщения и является необязательным. Обработчик по умолчанию отправляет сообщение в соединение stderr ().

...