R: Convert an expression to a function

exprToFunction {shiny} | R Documentation

## Convert an expression to a function

### Description

This is to be called from another function, because it will attempt to get an unquoted expression from two calls back.

### Usage

    exprToFunction(expr, env = parent.frame(), quoted = FALSE)

### Arguments

`expr` | A quoted or unquoted expression, or a function.
`env` | The desired environment for the function. Defaults to the calling environment two steps back.
`quoted` | Is the expression quoted?

### Details

If expr is a quoted expression, then this just converts it to a function. If expr is a function, then this simply returns expr (and prints a deprecation message). If expr was a non-quoted expression from two calls back, then this will quote the original expression and convert it to a function.

### Examples

    # Example of a new renderer, similar to renderText
    # This is something that toolkit authors will do
    renderTriple <- function(expr, env=parent.frame(), quoted=FALSE) {
      # Convert expr to a function
      func <- shiny::exprToFunction(expr, env, quoted)

      function() {
        value <- func()
        paste(rep(value, 3), collapse=", ")
      }
    }

    # Example of using the renderer.
    # This is something that app authors will do.
    values <- reactiveValues(A="text")

    ## Not run:
    # Create an output object
    output$tripleA <- renderTriple({
      values$A
    })

    ## End(Not run)

    # At the R console, you can experiment with the renderer using isolate()
    tripleA <- renderTriple({
      values$A
    })

    isolate(tripleA())
    # "text, text, text"

[Package shiny version 1.0.3 Index]