You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中生成唯一食物组合及对应频次的解决方案咨询

解决Food组合顺序导致的统计重复问题

这个问题的核心是你没有对每个顾客的Food组合进行标准化排序——同一组食物的不同出现顺序(比如Pizza, Tacos和Tacos, Pizza)被当成了不同的类别,导致统计结果出现错误的重复项。我们只需要在生成组合字符串前对Food进行排序,就能让相同的组合统一格式,从而得到正确的频次统计。

修正后的代码

library(dplyr)

customerDataFrame <- data.frame(
  CustomerID = c('A', 'B', 'B', 'C', 'D', 'D'),
  Food = c('Pizza', 'Pizza', 'Tacos', 'Tacos', 'Tacos', 'Pizza')
)

customerDataFrame %>%
  group_by(CustomerID) %>%
  # 关键修改:先对去重后的Food排序,再转成统一格式的字符串
  summarise(Food = toString(sort(unique(Food)))) %>%
  ungroup() %>%
  group_by(Food) %>%
  summarise(n = n())

正确输出

# A tibble: 3 x 2
  Food          n
  <chr>     <int>
1 Pizza        1
2 Pizza, Tacos 2
3 Tacos        1

代码解释

  • 在group_by(CustomerID)后的summarise步骤中,我们新增了sort()操作:对每个顾客去重后的Food向量进行排序,这样不管顾客购买食物的顺序如何,相同的组合都会被转换成统一的字符串格式(比如Tacos, Pizza会被整理成Pizza, Tacos)。
  • 后续按Food分组统计时,原本被误判为不同类别的相同组合就会被归为一组,从而得到符合预期的频次结果。

内容的提问来源于stack exchange,提问作者AENick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:39:09