[R] name scoping within dataframe index
Alexy Khrabrov
deliverable at gmail.com
Mon Jan 26 20:01:55 CET 2009
> 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
More information about the R-help
mailing list