[Rd] "Name partially matched in data frame"
Scott Kostyshak
skostysh at princeton.edu
Wed Apr 30 21:33:54 CEST 2014
Hi Dennis,
On Wed, Apr 30, 2014 at 3:03 PM, Fisher Dennis <fisher at plessthan.com> wrote:
> R 3.1.0
> OS X
>
> Colleagues,
>
> I recently updated to 3.1.0 and I have encountered
> Warning messages: ... Name partially matched in data frame
> when I do something like:
> DATAFRAME$colname
> where colname is actually something longer than that (but unambiguous).
>
> I have much appreciated the partial matching capabilities because it fits with my workflow. I often receive updated data months after the initial code is written. In order to keep track of what I did in the past, I provide lengthy (unambiguous) names for columns, then abbreviate the names as I call them. This behavior has been termed “lazy” in various correspondence on this mailing list but it works for me and probably works for others.
Why not store that information elsewhere? e.g. in an attribute?
> I realize that the new message is only a warning but it is a minor nuisance. Would it be possible to add an
> option(partialMatch=TRUE) ## default is FALSE
> or something similar to suppress that behavior? That should keep both camps happy.
There is currently no option to control that behavior and (although I
do understand your use case) I personally hope one is not implemented.
The reason is that you might put that option in your .Rprofile and
when you share your code with me I get errors that columns aren't
found.
You can of course redefine the `$`:
> dataf <- data.frame(longColumn = 5)
> dataf$long
[1] 5
Warning message:
In `$.data.frame`(dataf, long) : Name partially matched in data frame
>
> `$.data.frame` <-
+ function (x, name)
+ {
+ a <- x[[name]]
+ if (!is.null(a))
+ return(a)
+ a <- x[[name, exact = FALSE]]
+ return(a)
+ }
>
> dataf$long
[1] 5
>
I hope you don't do that though.
Another option is to use the more verbose dataf[["long", exact = FALSE]].
Scott
--
Scott Kostyshak
Economics PhD Candidate
Princeton University
More information about the R-devel
mailing list