[R] Strange case of partial matching in .[ - possible bug / wrong documentation?
David Winsemius
dwinsemius at comcast.net
Wed May 19 22:04:07 CEST 2010
On May 19, 2010, at 12:14 PM, Hilmar Berger wrote:
> Hi all,
>
> This occurred in R-2.11.0 (WinXP).
>
> The R-help page of .[ says that:
>
> "Character indices can in some circumstances be partially matched (see
> pmatch) to the names or dimnames of the object being subsetted (but
> never
> for subassignment). Unlike S (Becker et al p. 358)), R has never used
> partial matching when extracting by [, and as from R 2.7.0 partial
> matching
> is not by default used by [[ (see argument exact)."
>
> My understanding is therefore that .[ should never try partial
> matching.
That was for [.matrix or similar (as noted at top of the page). You
created a different class of variable.
?"[.data.frame
"Both [ and [[ extraction methods partially match row names. By
default neither partially match column names, but [[ will unless
exact=TRUE. If you want to do exact matching on row names use match as
in the examples."
--
David.
>
> However:
>
>> df = data.frame(a=c(1,2,3,9), b=c(4,5,6,10))
>> rownames(df) = c("ef","gg","hh","fe")
>> df
> a b
> ef 1 4
> gg 2 5
> hh 3 6
> fe 9 10
>
>
>> df["e",]
> a b
> ef 1 4
>
>> rownames(df) = c("ef","gg","hh","efg")
>> df["e",]
> a b
> NA NA NA
>
> So, it looks like partial matching is done using
> pmatch("e",rownames(df))
> for "[". If this is true, the help page is not correct.
>
> Thanks !
> Regards,
> Hilmar
>
> ---
> Hilmar Berger
> Integromics S.L. / CNB-CSIC
> Madrid, Spain
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list