On 1/26/2009 1:46 PM, Alexy Khrabrov wrote:
Every time I have to prefix a dataframe column inside the indexing
brackets with the dataframe name, e.g.
df[df$colname==value,]
-- I am wondering, why isn't there an R scoping rule that search
starts with the dataframe names, as if we'd said
with(df, df[colname==value,])
-- wouldn't that be a reasonable default to prepend to the name
search path?
If you did that, it would be quite difficult to get at a "colname"
variable that *isn't* the column of df. It would be something like
df[get("colname", parent.frame()) == value,]
Actually, what I propose is a special search rule which simply looks
at the enclosing dataframe.name[...] outside the brackets and looks up
the columns first.
It would break legacy code which used the column names identical to
variables in this context, but there's probably other ideas to enhance
R readability which would break legacy code. Perhaps when the next
major overhaul occurs, this is something folks can voice opinions
about. I find the need for inner prefixing quite unnatural, FWIW.
Cheers,
Alexy
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.