varias - ¿Cómo encontrar elementos comunes de múltiples vectores?
varias graficas en r (3)
Podría haber una forma más inteligente de hacerlo, pero
intersect(intersect(a,b),c)
hará el trabajo.
EDITAR: Más inteligente y más conveniente si tienes muchos argumentos:
Reduce(intersect, list(a,b,c))
¿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 (por ejemplo: 3 y 9)
Ya es una buena respuesta, pero hay otras maneras 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, puede omitir las llamadas unique
si sabe que no hay valores repetidos dentro de a
, b
c
.
intersect_all <- function(a,b,...){
all_data <- c(a,b,...)
require(plyr)
count_data<- length(list(a,b,...))
freq_dist <- count(all_data)
intersect_data <- freq_dist[which(freq_dist$freq==count_data),"x"]
intersect_data
}
intersect_all(a,b,c)
ACTUALIZAR EDITAR Un código más simple
intersect_all <- function(a,b,...){
Reduce(intersect, list(a,b,...))
}
intersect_all(a,b,c)