From: Gabor Grothendieck <ggrothendieck_at_gmail.com>

Date: Wed 15 Feb 2006 - 01:38:38 EST

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Wed Feb 15 01:49:39 2006

Date: Wed 15 Feb 2006 - 01:38:38 EST

On 2/14/06, Duncan Murdoch <murdoch@stats.uwo.ca> wrote:

> On 2/14/2006 8:56 AM, Wolfram Fischer wrote:

*> > I defined three functions:
**> >
**> >> fun0 <- function( x=1:5, y=1:5, ... ) xyplot( y ~ x, ... )
**> >
**> >> fun1 <- function( x=1:5, y=1:5, ... ) fun2( y ~ x, ... )
**> >> fun2 <- function( ... ) xyplot( ... )
**> >
**> > The call of fun0() works as expected.
**> >
**> > The call of fun1() causes the following error:
**> > 'Error in eval(expr, envir, enclos) : object "y" not found'
**> >
**> > How should I define fun2 to avoid the error?
**>
**> fun2 is fine, it's fun1 that has problems. It is passing a formula
**> through fun2 to xyplot without telling xyplot where to evaluate the
**> arguments. If you change it to
**>
**> fun1 <- function( x=1:5, y=1:5, ... ) fun2( y ~ x, data=enviroment(), ... )
**>
**> it will tell xyplot to look in the current environment at the time of
**> the call, i.e. the fun1 evaluation environment where x and y live.
**>
*

Although this does seem to be how xyplot works, I think it indicates there is a problem with it.

data: For the 'formula' method, a data frame containing values for

any variables in the formula, as well as 'groups' and 'subset' if applicable. By default the environment where the function was called from is used.

For example, if we replace xyplot with lm it does work as expected:

fun1 <- function( x=1:5, y=1:5, ... ) fun2( y ~ x, ... )
fun2 <- function( ... ) lm( ... )

fun1()

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Wed Feb 15 01:49:39 2006

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:42:29 EST
*