Also the real agenda behind this warning is not clear. Looks like
just a normal warning, providing some potentially useful/important
information to the user.
However, in the NEWS file, this entry is in the DEPRECATED AND DEFUNCT
section:
\item Partial matching when using the \code{$} operator \emph{on
data frames} now throws a warning and may become defunct in the
future. If partial matching is intended, replace \code{foo$bar}
by \code{foo[["bar", exact = FALSE]]}.
Even though it's not deprecated yet...
H.
On 04/30/2014 03:34 PM, Hervé Pagès wrote:
Hi,
Would be good to have the man page updated about this. It still
says:
'x$name' is equivalent to 'x[["name", exact=FALSE]]'
which doesn't seem to be completely true anymore (the former emits
a warning in case of partial matching, not the latter).
It looks like for a data.frame, ‘x$name’ is now equivalent to
'x[["name", exact=NA]]':
> data.frame(aa=1:3)$a
[1] 1 2 3
Warning message:
In `$.data.frame`(data.frame(aa = 1:3), a) :
Name partially matched in data frame
> data.frame(aa=1:3)[["a", exact=NA]]
[1] 1 2 3
Warning message:
In .subset2(x, i, exact = exact) : partial match of 'a' to 'aa'
except that, instead of just calling 'x[["name", exact=NA]]' internally,
the former comes up with its own (and less informative) error message.
Cheers,
H.
> sessionInfo()
R version 3.1.0 (2014-04-10)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
On 04/30/2014 12:32 PM, Duncan Murdoch wrote:
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
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
--
Hervé Pagès
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024
E-mail: hpa...@fhcrc.org
Phone: (206) 667-5791
Fax: (206) 667-1319
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel