[R] subscripts in lists

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Aug 12 10:19:39 CEST 2003

On Tue, 12 Aug 2003, Peter Wolf wrote:

> What about ...
>  > unlist(lis)[which(unlist(lis)=="next")+1]
> [1] "want1" "want2"
> ... to avoid the loop in sapply?

That has a loop in each unlist, of course.  (A slicker version of that
solution was posted earlier by Richard.)

Note that you have to loop over the list elements to do this: both sapply
(really lapply) and unlist do that in C code.  It's not even clear to me
that it is worth avoiding looping in R code: for() loops in R are pretty
efficient, and the collective memory of problems in S+3.x (x < 4) is still
affecting decisions today.

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

More information about the R-help mailing list