2012-06-27 136 views
5

我有2個列表,每個列表都有多個變量(我認爲這是正確的術語)。我想找到每個變量的交點。看到下面的例子:R交叉點列表

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 

我試過以下,但它顯然是錯誤的。任何建議將不勝感激。謝謝。

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

[解釋的交叉口R]的可能重複(http://stackoverflow.com/questions/6630792/intersection-of-lists-in-r) – FoamyGuy

回答

4

什麼:

mapply(intersect, x,y) 
+0

謝謝,這是行得通的 - 我猜這就是這麼簡單 – user1249760

+0

注意,如果你的列表長度不一樣,並且它是按列表中的位置完成的,而不是通過名稱來完成的 - 即x [[1]]是相交的與y [[1]],而不是x $ A與y $ A,除非它們與您的示例中的順序相同 – Spacedman