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.
Duncan Murdoch