我有这样的情况:
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的出现次数。如何做到这一点?
提前致谢,
电子。
答案 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))