[Rd] capturing warnings using capture.output

William Dunlap wdunlap at tibco.com
Mon Nov 23 17:53:26 CET 2015


When options("warn") is 0, the default, the warning is not
printed until capture.output is done.  Use warn=1 to capture
the warnings as messages:

> options(warn=0)
> txt0 <- capture.output({message("A message"); warning("A warning")}, type="message")
Warning message:
In eval(expr, envir, enclos) : A warning
> options(warn=1)
> txt1 <- capture.output({message("A message"); warning("A warning")}, type="message")
> txt0
[1] "A message"
> txt1
[1] "A message"
[2] "Warning in eval(expr, envir, enclos) : A warning"
Bill Dunlap
TIBCO Software
wdunlap tibco.com


On Mon, Nov 23, 2015 at 2:31 AM, Richard Cotton <richierocks at gmail.com> wrote:
> >From the Details section of ?capture.output:
>
> Messages sent to stderr() (including those from message, warning and stop)
> are captured by type = "message". Note that this can be "unsafe" and should
> only be used with care.
>
> Capturing messages works as expected:
>
> capture.output(message("!!!"), type = "message")
> ## [1] "!!!"
>
> Capturing warnings doesn't seems to work:
>
> capture.output(warning("!!!"), type = "message")
> ## character(0)
> ## Warning message:
> ## In eval(expr, envir, enclos) : !!!
>
> Is the documentation wrong, or is this a bug, or am I doing doing silly?
>
> --
> Regards,
> Richie
>
> Learning R
> 4dpiecharts.com
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list