R: Evaluate a formula

f_eval_rhs {lazyeval} | R Documentation

## Evaluate a formula

### Description

`f_eval_rhs` evaluates the RHS of a formula and `f_eval_lhs` evaluates the LHS. `f_eval` is a shortcut for `f_eval_rhs` since that is what you most commonly need.

### Usage

    f_eval_rhs(f, data = NULL)

    f_eval_lhs(f, data = NULL)

    f_eval(f, data = NULL)

    find_data(x)

### Arguments

`f` | A formula. Any expressions wrapped in `uq()` will will be "unquoted", i.e. they will be evaluated, and the results inserted back into the formula. See `f_interp` for more details.
`data` | A list (or data frame). `find_data` is a generic used to find the data associated with a given object. If you want to make `f_eval` work for your own objects, you can define a method for this generic.
`x` | An object for which you want to find associated data.

### Details

If `data` is specified, variables will be looked for first in this object, and if not found in the environment of the formula.

### Pronouns

When used with `data`, `f_eval` provides two pronouns to make it possible to be explicit about where you want values to come from: `.env` and `.data`. These are thin wrappers around `.data` and `.env` that throw errors if you try to access non-existent values.

### Examples

    f_eval(~ 1 + 2 + 3)

    # formulas automatically capture their enclosing environment
    foo <- function(x) {
      y <- 10
      ~ x + y
    }
    f <- foo(1)
    f
    f_eval(f)

    # If you supply data, f_eval will look their first:
    f_eval(~ cyl, mtcars)

    # To avoid ambiguity, you can use .env and .data pronouns to be
    # explicit:
    cyl <- 10
    f_eval(~ .data$cyl, mtcars)
    f_eval(~ .env$cyl, mtcars)

    # Imagine you are computing the mean of a variable:
    f_eval(~ mean(cyl), mtcars)
    # How can you change the variable that's being computed?
    # The easiest way is "unquote" with uq()
    # See ?f_interp for more details
    var <- ~ cyl
    f_eval(~ mean( uq(var) ), mtcars)

[Package lazyeval version 0.2.1 Index]