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

如何用单行代码在同一数据框中实现Dplyr唯一值计数与总计数

在同一数据框中同时计算总计数与唯一值计数(dplyr实现)

当然可以!完全不需要用rbind合并,用dplyr的核心函数就能一条管道链搞定,分两种常见场景给你演示:

场景1:按分组生成两列统计结果(每个组对应总计数+唯一值计数)

如果你想按某个变量分组,每个分组行里同时显示该组的总观测数和目标变量的唯一值数量,直接用summarize()同时生成两个统计列即可:

library(dplyr)

# 示例数据:mtcars,按cyl分组,统计每组总观测数和唯一gear的数量
mtcars %>%
  group_by(cyl) %>%
  summarize(
    总计数 = n(),
    唯一值计数 = n_distinct(gear)
  )

这里n()用来计算当前分组的总观测数,n_distinct(gear)则统计gear列的唯一值数量,结果会是一个包含分组列、总计数列、唯一值计数列的数据框。

场景2:将两个统计量作为行展示(一行总计数,一行唯一值计数)

如果你希望把总计数和唯一值计数作为单独的行呈现,同样可以用summarize()构造一个两行的结果:

mtcars %>%
  summarize(
    统计类型 = c("总计数", "唯一值计数"),
    数值 = c(n(), n_distinct(gear))
  )

这样输出的就是一个两行两列的数据框,清晰区分两种统计结果。

两种方式都完全不需要额外合并操作,直接在dplyr的管道流里完成所有计算~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:23:43