1

我有这样的情况:

DF1

  COL1   COL2   COL3  ...   

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

DF2

COL
a
b
c
d
e
f
g
h
i
l
m
n
o

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

提前致谢,

E.

4

2 回答 2

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]]) ) )

(编辑说明:在和 '[[1]]' 周围添加引号%in%以将 DF2 的第一列也是唯一一列作为向量而不是列表返回。)

于 2012-10-03T20:20:38.520 回答
2

怎么样的东西:

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

或者,由于您已更新您的问题以声明 DF2 是data.frame

sapply(DF1, function(x) sum(x %in% DF2$COL))
于 2012-10-03T20:22:38.467 回答