[R] intersect more than two sets

John Fox jfox at mcmaster.ca
Tue Apr 24 21:22:19 CEST 2007


Dear Weiwei Shi,

How about using recursion?

> intersection <- function(x, y, ...){
+     if (missing(...)) intersect(x, y)
+ else intersect(x, intersection(y, ...))
+ }
 
> a <- letters[1:4]
> b <- letters[2:5]
> c <- letters[3:6]
> d <- letters[4:7]
> e <- letters[5:8]
 
> intersection(a, b)
[1] "b" "c" "d"
> intersection(a, b, c)
[1] "c" "d"
> intersection(a, b, c, d)
[1] "d"
> intersection(a, b, c, d, e)
character(0)
 
> do.call(intersection, list(a, b, c))
[1] "c" "d"

I hope this helps,
 John

--------------------------------
John Fox, Professor
Department of Sociology
McMaster University
Hamilton, Ontario
Canada L8S 4M4
905-525-9140x23604
http://socserv.mcmaster.ca/jfox 
-------------------------------- 

> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch 
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Weiwei Shi
> Sent: Tuesday, April 24, 2007 2:59 PM
> To: R Help
> Subject: Re: [R] intersect more than two sets
> 
> assume t2 is a list of size 11 and each element is a vector 
> of characters.
> 
> the following codes can get what I wanted but I assume there 
> might be a one-line code for that:
> 
> t3 <- t2[[1]]
> for ( i in 2:11){
> 	t3 <- intersect(t2[[i]], t3)
> }
> 
> or there is no such "apply"?
> 
> On 4/24/07, Weiwei Shi <helprhelp at gmail.com> wrote:
> > Hi,
> > I searched the archives and did not find a good solution to that.
> >
> > assume I have 10 sets and I want to have the common 
> character elements of them.
> >
> > how could i do that?
> >
> > --
> > Weiwei Shi, Ph.D
> > Research Scientist
> > GeneGO, Inc.
> >
> > "Did you always know?"
> > "No, I did not. But I believed..."
> > ---Matrix III
> >
> 
> 
> --
> Weiwei Shi, Ph.D
> Research Scientist
> GeneGO, Inc.
> 
> "Did you always know?"
> "No, I did not. But I believed..."
> ---Matrix III
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> 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.
>



More information about the R-help mailing list