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

如何用R语言dplyr实现按商店分组的多列去重计数统计?

解决方案

完全可以通过summarise()搭配n_distinct()函数实现单段代码统计,不需要分开处理两类水果再合并,示例代码如下:

library(dplyr)

result <- raw %>%
  group_by(Shop) %>%
  summarise(
    Apples = n_distinct(Apple_id),
    Oranges = n_distinct(Orange_id)
  ) %>%
  arrange(Shop) # 可选,按门店名称排序匹配期望输出顺序

代码说明

  • n_distinct()是dplyr内置函数,作用是统计指定列去重后的数值数量,刚好对应你要的「不同品种数」统计需求
  • 直接在summarise()内同时定义苹果、橙子两个统计列,一次分组就完成两类指标的计算
  • 最后加arrange(Shop)是为了让输出结果的门店排序和你给出的期望输出完全一致,不需要的话可以删掉这行

运行上述代码得到的result和你给出的期望输出完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:54:03