[R] Capturing stderr from system()

McGehee, Robert Robert.McGehee at geodecapital.com
Mon Aug 7 21:00:32 CEST 2006


Hello,
I have a system command that occasionally fails and writes output to
standard error, which R will print to the screen when ignore.stderr =
FALSE.

For example:
> system("BadCommand")
sh: line 1: BadCommand: command not found

I would like to know if the above command fails, and can presumably do
this by parsing the stderr message that R prints to the screen. My
(hopefully simple) problem is that I can't figure out how to capture
this output.

I tried intern = TRUE, capture.output, and sink (with either/both type =
"message" and type = "output"). I'm perplexed why sink doesn't get this
output (since it's printed to the screen), so wanted to ask the R
community how to grab the error message generated by trying to run
"BadCommand".

To be clear, below is the sink() syntax I tried. Notice the output of
the sink is character(0) rather than the line "sh: line 1: BadCommand:
command not found".

> conn <- sink(z <- tempfile())
> sink(conn, type = "message")
> system("BadCommand")
sh: line 1: BadCommand: command not found
> sink(type = "message")
> sink()
> readLines(z)
character(0)

Thanks in advance,
Robert

> R.version
               _                                        
platform       i686-pc-linux-gnu                        
arch           i686                                     
os             linux-gnu                                
system         i686, linux-gnu                          
status         Patched                                  
major          2                                        
minor          3.1                                      
year           2006                                     
month          07                                       
day            27                                       
svn rev        38721                                    
language       R                                        
version.string Version 2.3.1 Patched (2006-07-27 r38721)


Robert McGehee
Quantitative Analyst
Geode Capital Management, LLC
53 State Street, 5th Floor | Boston, MA | 02109
Tel: 617/392-8396    Fax:617/476-6389
mailto:robert.mcgehee at geodecapital.com



This e-mail, and any attachments hereto, are intended for us...{{dropped}}



More information about the R-help mailing list