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