withCapture.Rd
Evaluates an expression and captures the code and/or the output.
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", envir=parent.frame())
The R expression to be evaluated.
An optional named list
used for substituting
symbols with other strings.
If TRUE
, the deparsed code of the expression is echoed.
If TRUE
, the output of each evaluated subexpression
is echoed.
Additional arguments passed to sourceTo
which in turn passes arguments to source
().
A positive integer
specifying the maximum
length of a deparsed expression, before truncating it.
If TRUE
, the captured rows are trimmed.
If TRUE
and collapse
is non-NULL
, a newline
is appended at the end.
A character
string used for collapsing the captured
rows. If NULL
, the rows are not collapsed.
The environment
in which the expression is evaluated.
Returns a character
string class 'CapturedEvaluation'.
Internally, eval
() is used to evaluate the expression.
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] "2023-11-17 17:04:00 PST"
#> > type <- "horse"
#> > type
#> [1] "horse"
## > 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!"
## > x <- 2
## > s <- "Hello world!"
## > x
## [1] 2
## > s
## [1] "Hello world!"