2012-06-27 35 views
5

Tengo 2 listas, cada una con múltiples variables (creo que este es el término correcto). Y quiero encontrar la intersección para cada variable. Vea el siguiente ejemplo:R intersección de listas

x<-list(A=c(1,2,3),B=c(4,5,6),C=c(7,8,9)) #input 
y<-list(A=c(1,3,6,7),B=c(5,7,8),C=c(7,9,10)) #input 
xinty<-list(A=c(1,3),B=5,C=c(7,8)) # desired output 

He intentado lo siguiente, pero obviamente está mal. Cualquier sugerencia sería muy apreciada. Gracias.

xinty<-lapply(x,function(x) intersect(x,y)) 
+0

posible duplicado de [intersección de las listas de R] (http://stackoverflow.com/questions/6630792/intersection-of-lists-in-r) – FoamyGuy

Respuesta

4

¿Qué hay de:

mapply(intersect, x,y) 
+0

gracias, eso funciona - supongo que fue así de simple – user1249760

+0

Tenga en cuenta que esto fallará si sus listas no son de la misma longitud, y se hace por posición en la lista, y no por nombre - es decir, x [[1]] se cruza con y [[1]], no x $ A con y $ A a menos que estén en el mismo orden que en su ejemplo – Spacedman

Cuestiones relacionadas