[R] Capturing buffered output from Rterm
In MS Windows I a) invoke Rterm from a batch file (test.bat) b) to execute commands from a script (m:\test.rsc) c) capturing output in a log file (m:\test.log) BUT if the script results in an error the error message is NOT written to the log file, leaving me problems when the error is from a complicated function. Simplified example:. test.bat REM ensure 'R' is in path path \\Server02\stats\R\R-Current\bin\;%PATH% Rterm --no-init-file --no-restore-data --no-save --silent m:\test.rsc m:\test.log - m:\test.rsc - print(this is a test) #generate an error nls() -- The error message: Error in .Internal(inherits(x, what, which)) : 'x' is missing is is NOT written to the log file, which just ends m:\test.log -- snip print(this is a test) [1] this is a test #generate an error nls() - I surmise this is due to output buffering (?). In an S-Plus version I turned off buffering with guiSetOption(option.name=BufferOutputWindows, value.string=F) but I don't think this is available in R (?). Has anyone any suggestions? Thanks in advance, Keith Jewell --please do not edit the information below-- R Version: platform = i386-pc-mingw32 arch = i386 os = mingw32 system = i386, mingw32 status = major = 2 minor = 11.0 year = 2010 month = 04 day = 22 svn rev = 51801 language = R version.string = R version 2.11.0 (2010-04-22) Windows Server 2003 x64 (build 3790) Service Pack 2 Locale: LC_COLLATE=English_United Kingdom.1252;LC_CTYPE=English_United Kingdom.1252;LC_MONETARY=English_United Kingdom.1252;LC_NUMERIC=C;LC_TIME=English_United Kingdom.1252 Search Path: .GlobalEnv, package:datasets, CBRIForecast, package:RODBC, package:tree, package:locfit, package:lattice, package:akima, package:nlme, package:MASS, package:grDevices, package:geometry, KJRutils, package:xlsReadWrite, package:svSocket, package:TinnR, package:R2HTML, package:Hmisc, package:survival, package:splines, package:graphics, package:stats, CBRIutils, package:utils, package:tcltk, package:tools, package:methods, TempEnv, Autoloads, package:base __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Re: [R] Capturing buffered output from Rterm
Keith Jewell wrote: In MS Windows I a) invoke Rterm from a batch file (test.bat) b) to execute commands from a script (m:\test.rsc) c) capturing output in a log file (m:\test.log) BUT if the script results in an error the error message is NOT written to the log file, leaving me problems when the error is from a complicated function. Simplified example:. test.bat REM ensure 'R' is in path path \\Server02\stats\R\R-Current\bin\;%PATH% Rterm --no-init-file --no-restore-data --no-save --silent m:\test.rsc m:\test.log - m:\test.rsc - print(this is a test) #generate an error nls() -- The error message: Error in .Internal(inherits(x, what, which)) : 'x' is missing is is NOT written to the log file, which just ends m:\test.log -- snip print(this is a test) [1] this is a test #generate an error nls() - I surmise this is due to output buffering (?). In an S-Plus version I turned off buffering with guiSetOption(option.name=BufferOutputWindows, value.string=F) but I don't think this is available in R (?). Has anyone any suggestions? It's not output buffering, it's because error messages go to a different file handle than regular ones. You need to redirect both stdout and stderr. I'm not sure of the syntax to do that in Windows CMD, but R CMD BATCH test.rsc instead of Rterm would do it. (The output should go to test.Rout.) Duncan Murdoch __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Re: [R] Capturing buffered output from Rterm
On Thu, 10 Jun 2010, Keith Jewell wrote: In MS Windows I a) invoke Rterm from a batch file (test.bat) b) to execute commands from a script (m:\test.rsc) c) capturing output in a log file (m:\test.log) BUT if the script results in an error the error message is NOT written to the log file, leaving me problems when the error is from a complicated function. Sure, warning and errors are written to stderr, which you did not redirect. This is covered in rw-FAQ Q2.12. Using R CMD BATCH would have done this for you This is not to do with 'buffered output': in any case R uses minimal buffering so stdout and stderr can be mixed nicely on a single log file. Simplified example:. test.bat REM ensure 'R' is in path path \\Server02\stats\R\R-Current\bin\;%PATH% Rterm --no-init-file --no-restore-data --no-save --silent m:\test.rsc m:\test.log - m:\test.rsc - print(this is a test) #generate an error nls() -- The error message: Error in .Internal(inherits(x, what, which)) : 'x' is missing is is NOT written to the log file, which just ends m:\test.log -- snip print(this is a test) [1] this is a test #generate an error nls() - I surmise this is due to output buffering (?). In an S-Plus version I turned off buffering with guiSetOption(option.name=BufferOutputWindows, value.string=F) but I don't think this is available in R (?). Has anyone any suggestions? Thanks in advance, Keith Jewell --please do not edit the information below-- R Version: platform = i386-pc-mingw32 arch = i386 os = mingw32 system = i386, mingw32 status = major = 2 minor = 11.0 year = 2010 month = 04 day = 22 svn rev = 51801 language = R version.string = R version 2.11.0 (2010-04-22) Windows Server 2003 x64 (build 3790) Service Pack 2 Locale: LC_COLLATE=English_United Kingdom.1252;LC_CTYPE=English_United Kingdom.1252;LC_MONETARY=English_United Kingdom.1252;LC_NUMERIC=C;LC_TIME=English_United Kingdom.1252 Search Path: .GlobalEnv, package:datasets, CBRIForecast, package:RODBC, package:tree, package:locfit, package:lattice, package:akima, package:nlme, package:MASS, package:grDevices, package:geometry, KJRutils, package:xlsReadWrite, package:svSocket, package:TinnR, package:R2HTML, package:Hmisc, package:survival, package:splines, package:graphics, package:stats, CBRIutils, package:utils, package:tcltk, package:tools, package:methods, TempEnv, Autoloads, package:base __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. -- Brian D. Ripley, rip...@stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UKFax: +44 1865 272595 __ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.