匹配两个data.frame

时间:2012-10-03 20:09:39

标签: r

我有这样的情况:

DF1

  COL1   COL2   COL3  ...   

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

DF2

  

COL
   一个
   b
   ç
   d
   Ë
   ˚F
   摹
   ^ h
   我
   升
   米
   ñ
   o

我想将DF1的每一列与DF2的唯一一列相匹配,并评估DF1每列中DF2的出现次数。如何做到这一点?

提前致谢,

电子。

2 个答案:

答案 0 :(得分: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]]'周围添加引号,将DF2的第一列也是唯一一列作为向量而不是列表返回。)

答案 1 :(得分:2)

如下:

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

或者,因为您已更新了问题以说明DF2是data.frame

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