[R] union of lists

Sundar Dorai-Raj sundard at pdf.com
Wed Apr 17 21:31:19 CEST 2002


Would this work?

lista <- list(1:3,4:7,2:10)
listb <- list(2:4,6:10,1:6)
lapply(1:3,function(x,lista,listb) 
       union(lista[[x]],listb[[x]]),lista=lista,listb=listb)

Or, alternatively, if the list has names:

lista <- list("s"=1:3,"u"=4:7,"n"=2:10,"d"=0,"a"=-1:1,"r"=3:12)
listb <- list("s"=2:4,"u"=6:10,"n"=1:6,"r"=2:4)
lapply(union(names(lista),names(listb)),
       function(x,lista,listb) 
         union(lista[[x]],listb[[x]]),
       lista=lista,listb=listb)

The latter option allows for lista and listb to have different lengths
as well.

Sundar

Agustin Lobo wrote:
> 
> Hi there,
> 
> Given 2 lists of integer vectors, i.e.:
> 
> > lista1
> $"1"
> [1]  1 34  5
> $"2"
> [1] 2 1
> $"3"
> [1]  3 10 15
> 
> > lista2
> $"1"
> [1] 1 5
> $"2"
> [1] 2 1
> $"3"
> [1]  3 10 29
> 
> I want to obtain the union of both, defined
> as the union of the vectors, that is
> lista.union[[1]] <- union(lista1[[1]],lista2[[1]]):
> 
> > lista.union
> $"1"
> [1]  1 34  5
> $"2"
> [1] 2 1
> $"3"
> [1]  3 10 15 29
> 
> I'm now using a for loop and applying
> union() to each pair of vectors, but is
> there a faster way avoiding the for ?
> 
> Thanks!
> 
> Agus
> 
> Dr. Agustin Lobo
> Instituto de Ciencias de la Tierra (CSIC)
> Lluis Sole Sabaris s/n
> 08028 Barcelona SPAIN
> tel 34 93409 5410
> fax 34 93411 0012
> alobo at ija.csic.es
> 
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

-- 

Sundar Dorai-Raj, Ph.D.
Statistical Methods Engineer
PDF Solutions, Inc.
(972) 889-3085 x216
(214) 392-7619 cell
sundard at pdf.com
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list