Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

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, replace=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", substitute=replace,
  envir=parent.frame())

Arguments

expr

The R expression to be evaluated.

replace

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.

substitute

(defunct) use replace instead.

envir

The environment in which the expression is evaluated.

Value

Returns a character string class 'CapturedEvaluation'.

Author(s)

Henrik Bengtsson

See Also

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

Examples

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 relabel=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!"

R.utils

Various Programming Utilities

v2.10.1
LGPL (>= 2.1)
Authors
Henrik Bengtsson [aut, cre, cph]
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.