Learn R Programming

utils (version 3.3.2)

capture.output: Send Output to a Character String or File

Description

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.

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.

Value

A character string (if file = NULL), or invisible NULL.

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.

See Also

sink, textConnection

Examples

Run this code
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 &")
## ---------------------------------------------<!-- % dont -->

Run the code above in your browser using DataLab