如何统计R语言两个数据框指定列的共有唯一值匹配数量
解决方案
count()是dplyr包中用于统计数据框分组频数的函数,要求输入参数为数据框,你传入逻辑向量属于参数类型错误,无法得到预期结果。
最简实现方法
R中布尔值TRUE对应数值1、FALSE对应数值0,直接对匹配逻辑向量求和即可得到匹配为TRUE的总数量:
# 统计df1中id列能匹配到df2$id的总行数 sum(df1$id %in% df2$id)
如果需要统计的是df1中唯一ID值的匹配数量(去重后匹配的ID总数),先对df1的id列去重再计算即可:
# 统计df1的唯一ID出现在df2$id中的总数量 sum(unique(df1$id) %in% df2$id)
写入汇总表的写法
直接将求和结果赋值给新列即可:
output <- data.frame( idMatch = sum(df1$id %in% df2$id) )
可选实现方式
如果要基于你之前的table()结果提取数值,也可以通过索引提取TRUE对应的统计值,效果和求和一致:
table(df1$id %in% df2$id)["TRUE"]
内容的提问来源于stack exchange,提问作者Mus
相关产品推荐
相关产品推荐

