# [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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

```