Learn R Programming

R.utils (version 2.3.0)

withCapture: Evaluates an expression and captures the code and/or the output

Description

Evaluates an expression and captures the code and/or the output.

Usage

withCapture(expr, substitute=getOption("withCapture/substitute", ".x."), code=TRUE, output=code, ..., max.deparse.length=getOption("max.deparse.length", 10000), trim=TRUE, newline=getOption("withCapture/newline", TRUE), collapse="\n", envir=parent.frame())

Arguments

expr
The R expression to be evaluated.
substitute
An optional named list used for substituting symbols with other strings.
code
If TRUE, the deparsed code of the expression is echoed.
output
If TRUE, the output of each evaluated subexpression is echoed.
...
Additional arguments passed to sourceTo which in turn passes arguments to source().
max.deparse.length
A positive integer specifying the maximum length of a deparsed expression, before truncating it.
trim
If TRUE, the captured rows are trimmed.
newline
If TRUE and collapse is non-NULL, a newline is appended at the end.
collapse
A character string used for collapsing the captured rows. If NULL, the rows are not collapsed.
envir
The environment in which the expression is evaluated.

Value

Returns a character string class 'CapturedEvaluation'.

See Also

Internally, eval() is used to evaluate the expression.

Examples

Run this code
print(withCapture({
 n <- 3;
 n;

 for (kk in 1:3) {
   printf("Iteration #%d\n", kk);
 }

 print(Sys.time());

 type <- "horse";
 type;
}))

## > n <- 3
## > n
## [1] 3
## > for (kk in 1:3) {
## +     printf("Iteration #%d\n", kk)
## + }
## Iteration #1
## Iteration #2
## Iteration #3
## > print(Sys.time())
## [1] "2011-11-06 11:06:32 PST"
## > type <- "horse"
## > type
## [1] "horse"


# Automatic "variable" substitute
# (disable with substitute=NULL)
a <- 2
b <- "Hello world!"

print(withCapture({
 x <- .a.
 s <- .b.
 x
 s
}))

## > x <- 2
## > s <- "Hello world!"
## > x
## [1] 2
## > s
## [1] "Hello world!"

Run the code above in your browser using DataLab