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. 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. Dennis Dennis Fisher MD P < (The "P Less Than" Company) Phone: 1-866-PLessThan (1-866-753-7784) Fax: 1-866-PLessThan (1-866-753-7784) www.PLessThan.com
On 30/04/2014 3:03 PM, Fisher Dennis 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. > > 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.I'd be much happier with a general mechanism to suppress particular warnings. Then you could choose to suppress this one. We might be able to do that with options("warning.expression"), but I don't see how... Duncan Murdohc
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