Use match() for exact matching,
i.e.,
> test[[match("name", names(test))]]
Yes, it is more cumbersome. This partial matching is considered by some to be a design fault, but changing it would break too many programs that depend upon it.
I don't understand your question about all.equal.list() -- it does seem to require exact matches on names, e.g.:
> all.equal(list(a=1:3), list(aa=1:3)) [1] "Names: 1 string mismatches" > all.equal(list(aa=1:3), list(a=1:3)) [1] "Names: 1 string mismatches" >
(the above run in R 2.0.0)
-- Tony Plate
(BTW, in R this operation is generally called "indexing" or "subscripting" or "extraction", but not "hashing". "Hashing" is a specific technique for managing and looking up indices, which is why some other programming languages refer to list-like objects that are indexed by character strings as "hashes". I don't think hashing is used for list names in R, but someone please correct me if I'm wrong! )
At Thursday 09:29 AM 11/18/2004, ulas karaoz wrote:
hi all, I am trying to use named list to hash a bunch of vector by name, for instance: test = list() test$name = c(1,2,3)
the problem is that when i try to get the values back by using the name, the matching isn't done in an exact way, so
test$na is not NULL.
is there a way around this? Why by default all.equal.list doesnt require an exact match? How can I do hashing in R?
thanks. ulas.
______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html