¿Cómo encontrar elementos comunes de múltiples vectores?

Resuelto Chares asked hace 54 años • 3 respuestas

¿Alguien puede decirme cómo encontrar los elementos comunes de múltiples vectores?

a <- c(1,3,5,7,9)
b <- c(3,6,8,9,10)
c <- c(2,3,4,5,7,9)

Quiero obtener los elementos comunes de los vectores anteriores (ej: 3 y 9)

Chares avatar Jan 01 '70 08:01 Chares
Aceptado

Puede que haya una forma más inteligente de hacerlo, pero

intersect(intersect(a,b),c)

hará el trabajo.

EDITAR: de manera más inteligente y conveniente si tiene muchos argumentos:

Reduce(intersect, list(a,b,c))
bnaul avatar Sep 12 '2010 17:09 bnaul

Ya es una buena respuesta, pero hay otras formas de hacerlo:

unique(c[c%in%a[a%in%b]])

o,

tst <- c(unique(a),unique(b),unique(c))
tst <- tst[duplicated(tst)]
tst[duplicated(tst)]

Obviamente puedes omitir las uniquellamadas si sabes que no hay valores repetidos dentro de a, bo c.

James avatar Sep 13 '2010 09:09 James