2012-10-03 141 views
1

我有這樣的情況:匹配兩個data.frame

DF1

COL1 COL2 COL3 ... 

    a  b  c  
    b  d  b 
    f  e  a 
    g  m  f  

DF2

COL
一個
b
Ç
d
Ë
˚F

ħ



Ñ
ö

我想DF1的每列與只有一個列匹配的DF2並且評分DF1的每一列中出現多少DF2。如何做到這一點?

由於提前,

E.

回答

2

這裏有一對夫婦的猜測:

sapply(lapply(DF1, "%in%", DF2[[1]]), sum) 

lapply(DF1, function(col) length(which(col %in% DF2))) 

如果DF2是data.frame作爲很可能它的名字,那麼你需要做到這一點:

lapply(DF1, function(col) length(which(col %in% DF2[[1]]))) 

(編輯注:加入%in%和周圍引號 '[[1]]' 至RET甕DF2的第一和唯一的列向量,而不是一個列表)

+0

喜歡迪文!它完美的工作!非常感謝! – Elb

2

約像什麼:

sapply(DF1, function(x) sum(x %in% DF2)) 

或者,因爲你已經更新您的問題聲明,DF2是data.frame

sapply(DF1, function(x) sum(x %in% DF2$COL))