我有这样的情况:
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.
我有这样的情况:
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.
这里有几个猜测:
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 的第一列也是唯一一列作为向量而不是列表返回。)
怎么样的东西:
sapply(DF1, function(x) sum(x %in% DF2))
或者,由于您已更新您的问题以声明 DF2 是data.frame
:
sapply(DF1, function(x) sum(x %in% DF2$COL))