2012-06-27 54 views
5

Tôi có 2 danh sách, mỗi danh sách có nhiều biến (tôi nghĩ đây là cụm từ chính xác). Và tôi muốn tìm giao lộ cho mỗi biến. Xem ví dụ bên dưới:Giao lộ R của danh sách

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 

Tôi đã thử những điều sau, nhưng rõ ràng là sai. Bất kỳ đề xuất sẽ được đánh giá rất cao. Cảm ơn.

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

thể trùng lặp của [Intersection của Lists trong R] (http://stackoverflow.com/questions/6630792/intersection-of-lists-in-r) – FoamyGuy

Trả lời

4

gì về:

mapply(intersect, x,y) 
+0

cảm ơn, điều đó hoạt động - tôi đoán nó đơn giản là – user1249760

+0

Lưu ý điều này sẽ thất bại nếu danh sách của bạn không cùng độ dài và được thực hiện theo vị trí trong danh sách chứ không phải theo tên - tức là x [[1]] được giao nhau với y [[1]], không phải x $ A với y $ A trừ khi chúng theo cùng thứ tự như trong ví dụ của bạn – Spacedman

Các vấn đề liên quan