Skip to content

Output of warnings inside the source function

4 messages · Arkady Sherman, Uwe Ligges, Thomas Lumley

#
Hello, all.
There is a problem to get an output of warnings() function to sink in a 
file specified.
There are to files

1. File "test" with content:

source("test_foo",local=T)

2. and file "test_foo" with content:

options(warn = 1)
sink("c:/temp/foo.txt",append=F)
warning("Foo warning")
warnings()
sink()

3. If I run R as

"c:\Program Files\R\rw2011\bin\R.exe" --no-save < test > out.txt

the file "c:/temp/foo.txt" will contain nothing.
But I'd like it should contain the warning message "Foo warning".
Is the behavior a bug of R or there is another way to get it working.
         Thanks in advance, Alex
#
Arkady Sherman wrote:

            
See ?sink how to handle messages such as warnings.

Uwe Ligges
#
Uwe Ligges wrote:
It's clear I could use sink(f, type="message"), but if I run "c:\Program 
Files\R\rw2011\bin\R.exe" --no-save < test_foo > out.txt instead, the 
warning is written to foo.txt without sinking with type="message". Also 
the problem is that in the later case the warnings will appear in the 
output file in places when just produced, but I need them to appear when 
I call warnings().

The problem (and question) is that the last.warning variable has not 
been set after the warning call (even when options(warn = 1) is defined) 
and warnings() can't output it, so - is that a right behavior?
#
On Sun, 11 Sep 2005, Arkady Sherman wrote:
The help page for sink() documents the behaviour you are seeing, so it 
isn't a bug. The help page also describes how to do what you want, and 
even gives an example.

 	-thomas