[R] lapply not reading arguments from the correct environment

From: jiho <jo.irisson_at_gmail.com>
Date: Fri, 18 May 2007 16:41:46 +0200


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)
	cFoo = lapply(foos,subset,select=fooCollumn)


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.



R-help_at_stat.math.ethz.ch mailing list
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Fri 18 May 2007 - 14:52:09 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 24 May 2007 - 15:01:28 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.