[R] problem with lapply(x, subset, ...) and variable select argument
joerg van den hoff
j.van_den_hoff at fz-rossendorf.de
Mon Oct 10 17:47:11 CEST 2005
I need to extract identically named columns from several data frames in
a list. the column name is a variable (i.e. not known in advance). the
whole thing occurs within a function body. I'd like to use lapply with a
variable 'select' argument.
example:
tt <- function (n) {
x <- list(data.frame(a=1,b=2), data.frame(a=3,b=4))
for (xx in x) print(subset(xx, select = n)) ### works
print (lapply(x, subset, select = a)) ### works
print (lapply(x, subset, select = "a")) ### works
print (lapply(x, subset, select = n)) ### does not work as intended
}
n = "b"
tt("a") #works (but selects not the intended column)
rm(n)
tt("a") #no longer works in the lapply call including variable 'n'
question: how can I enforce evaluation of the variable n such that
the lapply call works? I suspect it has something to do with eval and
specifying the correct evaluation frame, but how? ....
many thanks
joerg
More information about the R-help
mailing list