Re: [Rd] hash access to data.frame uses prefix? (PR#10474)

From: <ripley_at_stats.ox.ac.uk>
Date: Wed, 28 Nov 2007 10:50:15 +0100 (CET)


If you do want only exact matching, use match(). E.g. in your example

x[match("V41", row.names(x)), ]

will give NA as you expected for a construction documented to do something else.

On Wed, 28 Nov 2007, Prof Brian Ripley wrote:

> Exact matching has preference over partial matching: see ?pmatch.
>
> Your version of R is three versions obsolete: the latest version explains
> this in detail under ?`[.data.frame` and ?`[` (and maybe 2.5.0 does too).
>
> Please do your homework before sending non-bugs to R-bugs.
>
>
> On Wed, 28 Nov 2007, pkensche_at_cmbi.ru.nl wrote:
>
>> Full_Name: Philip Kensche
>> Version: R version 2.5.0 (2007-04-23)
>> OS: Linux
>> Submission from: (NULL) (131.174.146.31)
>>
>>
>> I want to access a row of a data.frame() by using the row names as hash
>> keys.
>
> Hmm, you mean you use character vector indices. No hashing is involved.
>
>> This works fine for most keys.
>>
>> Now consider the following data.frame().
>>
>>> x <- data.frame(v=c(V40="a", V411="b"))
>>
>>> x
>> v
>> V40 a
>> V411 b
>>
>> If I query for "V41", which does not exist in the data.frame() the call
>> does not return NA as I would expect but the row "V411".
>>
>>> x[ "V41", ]
>> [1] b
>> Levels: a b
>>
>> If there the prefix is not unique the query does not return a results, i.e.
>>
>>> x <- data.frame(v=c(V412="a", V411="b"))
>>
>>> x
>> v
>> V412 a
>> V411 b
>>
>>> x[ "V41", ]
>> [1] <NA>
>> Levels: a b
>>
>>
>> sessionInfo() output:
>>> sessionInfo()
>> R version 2.5.0 (2007-04-23)
>> i686-pc-linux-gnu
>>
>> locale:
>> LC_CTYPE=en_US;LC_NUMERIC=C;LC_TIME=en_US;LC_COLLATE=en_US;LC_MONETARY=en_US;LC_MESSAGES=en_US;LC_PAPER=en_US;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US;LC_IDENTIFICATION=C
>>
>> attached base packages:
>> [1] "stats" "graphics" "grDevices" "utils" "datasets" "methods"
>> [7] "base"
>>
>> other attached packages:
>> lattice
>> "0.15-4"
>>
>> ______________________________________________
>> R-devel_at_r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
>

-- 
Brian D. Ripley,                  ripley_at_stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Wed 28 Nov 2007 - 09:54:21 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 28 Nov 2007 - 19:31:00 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.