R.utils (version 2.0.1)

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

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.}

Returns a character string class 'CapturedEvaluation'.

print(withCapture({ n <- 3; n;

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

print(Sys.time());

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

## > n <- 3 ## > n ## [1] 3 ## > for (kk in 1:3) { ## + printf("Iteration #%d", 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!" }

[object Object]

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

utilities

Arguments