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