R列出这些项目的组合
Posted
技术标签:
【中文标题】R列出这些项目的组合【英文标题】:R List combinations of items with count of these 【发布时间】:2022-01-22 21:39:04 【问题描述】:我想查看我有多少条产品组合的记录。有些帐户有几个不同的产品,有些有 3 或 4 个。我已经做了一个分组,它给出了每个帐户附加的产品数量:
test <- data %>%
unique() %>%
group_by(ACCOUNT) %>% summarise(number = n())
接下来我要做的是对产品排列进行分组,这样我就可以计算 a+b、b+c、a+b+c、a+b+m、m+n 等的每一个。 我不希望所有可能的排列都存在,但我不知道组合的最大产品数量是多少——这是我正在努力解决的问题之一。 (虽然可能大约是 5 或 6 个)
Edited to add sample data
| Account | Product |
| -------- | -------------- |
| 1 | a |
| 1 | b |
|1 |c |
|2 |a |
|2 |c |
|3 |a |
|3 |c |
|4 |a |
|4 |b|
期望的结果 - 单独计算每个独特的组合。
| Product combo | Count |
| -------- | -------------- |
| ab | 1 |
| ac | 2 |
|abc |1 |
【问题讨论】:
如果您发布了一个小的可重现数据集,ppl 将能够为您提供帮助 我假设您对一起购买的产品感兴趣(也许不),但您必须向我们提供示例数据(如前所述),但还需要更多关于如何定义您的产品的信息团体。例如a+b+c
是否也应计入 a+b
、 b+c
、 a+c
?所以除了小样本数据集,还要提供想要的输出。
【参考方案1】:
我使用;
分隔符,因为它看起来更好,但这里是dplyr
版本:
library(dplyr)
df %>%
group_by(Account) %>%
summarize(combo = paste(sort(Product), collapse = ";"), .groups = "drop") %>%
count(combo)
# # A tibble: 3 × 2
# combo Count
# <chr> <int>
# 1 a;b 1
# 2 a;b;c 1
# 3 a;c 2
使用这些数据:
df = read.table(text = ' Account Product
1 a
1 b
1 c
2 a
2 c
3 a
3 c
4 a
4 b', header = T)
【讨论】:
以上是关于R列出这些项目的组合的主要内容,如果未能解决你的问题,请参考以下文章