R: Evaluates an expression and captures the code and/or the...

withCapture {R.utils} | R Documentation

## 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` | (to be deprecated) 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!"

[Package R.utils version 2.7.0 Index]