我有一个数据框df
.
df <- data.frame(shop = c("A", "A", "A", "B", "B", "B", "C", "C", "C"),
product = c(1,2,3,4,5,1,5,2,4))
对于每对商店,即AB
, AC
and BC
,我想统计一下常见产品的数量。
预期输出如下
pair common_product
AB 1 # Because 1 is common
AC 1 # Because 2 is common
BC 2 # Because 5 and 4 is common
基本 R 选项是:
pair <- combn(unique(df$shop), 2, paste0, collapse = "")
commmon_product <- combn(unique(df$shop), 2, function(x)
with(df, length(intersect(product[shop == x[1]], product[shop == x[2]]))))
data.frame(pair, commmon_product)
# pair commmon_product
#1 AB 1
#2 AC 1
#3 BC 2
对于每一个组合shop
我们找出有多少个值product
intersect
using combn
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)