[R] Data Frame as Hash Table
Barry Rowlingson
b.rowlingson at lancaster.ac.uk
Sun May 30 10:13:28 CEST 2010
On Sun, May 30, 2010 at 9:03 AM, Alan Lue <alan.lue at gmail.com> wrote:
> I'm interested in using a data frame as if it were a hash table. For
> instance if I had the following,
>
>> (d <- data.frame(key=seq(0.5, 3, 0.5), value=rnorm(6)))
> key value
> 1 0.5 -1.118665122
> 2 1.0 0.465122921
> 3 1.5 -0.529239211
> 4 2.0 -0.147324638
> 5 2.5 -1.531503795
> 6 3.0 -0.002720434
>
> Then I'd like to be able to quickly retrieve the "value" of "key" 1.5
> to get -0.53. How would one go about doing this?
Assign the key to the rownames:
> row.names(d)=d$key
> d
key value
0.5 0.5 -0.1023732
1 1.0 -0.2005591
1.5 1.5 0.1204866
but note they are character strings:
> d["0.5",]
key value
0.5 0.5 -0.1023732
I'm not sure if R uses a fast hashing algorithm for lookups or a
simple sequential search. Looking at the source code, testing, or
waiting for someone else to answer that on here will tell.
Or you could do it with a list, but again the keys are always
character strings.
Barry
More information about the R-help
mailing list