On Mon, Sep 7, 2015 at 11:34 AM, Witold E Wolski <wewol...@gmail.com> wrote: > What is the access time for R lists given a name of list element, is it > linear, log, or constant?
Try it and see? > Than what are to rules for names in R-lists > > That reusing names is possible makes me wonder. > > tmp <- as.list(c(1,2,3,4)) > names(tmp) = c("a","a","b","b") > tmp > tmp$a > > > What I am looking for is a standard R data structure which will allow me > for fast and name lookup. Depends what you mean by "standard"? There's a `hash` package that implements what are variously known as hash tables or associative arrays (in perl) and dictionaries (in Python) > require(hash) > z=hash("a",99) > z <hash> containing 1 key-value pair(s). a : 99 > z$b=123 There's no ordering so numeric indexing fails: > z[1] Error in get(k, x) : invalid first argument > z[[1]] Error in z[[1]] : wrong arguments for subsetting an environment > z <hash> containing 2 key-value pair(s). a : 99 b : 123 and the keys are unique, even if you try: > z=hash(c("a","b","b","c"), 1:4) > z <hash> containing 3 key-value pair(s). a : 1 b : 3 c : 4 I guess the lookup uses the usual fast hash lookup algorithms, but you'd have to check the docs and source for details. Barry ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.