[R] xyplot does not find variable in data

Deepayan Sarkar deepayan.sarkar at gmail.com
Mon Oct 12 20:30:42 CEST 2009


On Mon, Oct 12, 2009 at 9:32 AM, Jacob Wegelin <jacob.wegelin at gmail.com> wrote:
> When we call a lattice function such as xyplot, to what extent does
> the "data" designation cause the function to look inside the "data"
> for variables?
>
> In the examples below, the "subset" argument understands that
> "Variety" is a variable in the data.
>
> But the "scales" argument does not understand that "nitro" is a
> variable in the data.
>
> What principle is at work?

A strange one called "standard non-standard evaluation"; see

http://developer.r-project.org/nonstandard-eval.pdf

for a nice overview by Thomas Lumley.


?xyplot says:

    data: For the ‘formula’ method, a data frame containing values (or
          more precisely, anything that is a valid ‘envir’ argument in
          ‘eval’, e.g. a list or an environment) for any variables in
          the formula, as well as ‘groups’ and ‘subset’ if applicable.
          If not found in ‘data’, or if ‘data’ is unspecified, the
          variables are looked for in the environment of the formula.
          For other methods (where ‘x’ is not a formula), ‘data’ is
          usually ignored, often with a warning.

so the non-standard evaluation only applies to 'groups' and 'subset'.
The list may be different for other functions, e.g., densityplot()
also evaluates 'weights' in 'data'.

-Deepayan




More information about the R-help mailing list