capture.output
Send Output to a Character String or File
Evaluates its arguments with the output being returned as a character
string or sent to a file. Related to sink
in the same
way that with
is related to attach
.
- Keywords
- utilities
Usage
capture.output(…, file = NULL, append = FALSE,
type = c("output", "message"), split = FALSE)
Arguments
- …
Expressions to be evaluated.
- file
A file name or a connection, or
NULL
to return the output as a character vector. If the connection is not open, it will be opened initially and closed on exit.- append
logical. If
file
a file name or unopened connection, append or overwrite?- type, split
are passed to
sink()
, see there.
Details
An attempt is made to write output as far as possible to file
if there is an error in evaluating the expressions, but for
file = NULL
all output will be lost.
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.
Value
A character string (if file = NULL
), or invisible NULL
.
See Also
Examples
library(utils)
# NOT RUN {
require(stats)
glmout <- capture.output(summary(glm(case ~ spontaneous+induced,
data = infert, family = binomial())))
glmout[1:5]
capture.output(1+1, 2+2)
capture.output({1+1; 2+2})
# }
# NOT RUN {
## on Unix-alike with a2ps available<!-- %% ?? pandoc with obeylines, obeyspaces -->
op <- options(useFancyQuotes=FALSE)
pdf <- pipe("a2ps -o - | ps2pdf - tempout.pdf", "w")
capture.output(example(glm), file = pdf)
close(pdf); options(op) ; system("evince tempout.pdf &")
# }
# NOT RUN {
<!-- % dont -->
# }