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.

Reply via email to