[R] lapply not reading arguments from the correct environment
jiho
jo.irisson at gmail.com
Fri May 18 16:41:46 CEST 2007
Hello,
I am facing a problem with lapply which I ''''think''' may be a bug.
This is the most basic function in which I can reproduce it:
myfun <- function()
{
foo = data.frame(1:10,10:1)
foos = list(foo)
fooCollumn=2
cFoo = lapply(foos,subset,select=fooCollumn)
return(cFoo)
}
I am building a list of dataframes, in each of which I want to keep
only column 2 (obviously I would not do it this way in real life but
that's just to demonstrate the bug).
If I execute the commands inline it works but if I clean my
environment, then define the function and then execute:
> myfun()
I get this error:
Error in eval(expr, envir, enclos) : object "fooCollumn" not found
while fooCollumn is defined, in the function, right before lapply. In
addition, if I define it outside the function and then execute the
function:
> fooCollumn=1
> myfun()
it works but uses the value defined in the general environment and
not the one defined in the function.
This is with R 2.5.0 on both OS X and Linux (Fedora Core 6)
What did I do wrong? Is this indeed a bug? An intended behavior?
Thanks in advance.
JiHO
---
http://jo.irisson.free.fr/
More information about the R-help
mailing list