On 1/26/2009 2:01 PM, Alexy Khrabrov wrote:
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.
Yes, I understood that, and I explained why it would be a bad idea.
Duncan Murdoch
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.