Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I redirect R warning messages to STDOUT?

I'm using a grid engine to run R scripts. The STDERR is taken seriously under this setup, so I would like to keep it clean and have only real/serious/fatal errors printed to STDERR.

The problem is my R script generate various STDERR messages which are not really serious warnings... for example, scan seems to print to STDERR the number of items it read.

Can I redirect (from within R) STDERR to STDOUT?

like image 842
David B Avatar asked Nov 06 '10 11:11

David B


1 Answers

Look at the help page for sink():

‘sink’ diverts R output to a connection. If ‘file’ is a character string, a file connection with that name will be established for the duration of the diversion.

Normal R output (to connection ‘stdout’) is diverted by the default ‘type = "output"’. Only prompts and (most) messages continue to appear on the console. Messages sent to ‘stderr()’ (including those from ‘message’, ‘warning’ and ‘stop’) can be diverted by ‘sink(type = "message")’ (see below).

like image 51
Dirk Eddelbuettel Avatar answered Nov 07 '22 05:11

Dirk Eddelbuettel