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

在R中使用dplyr按多列分组后统计行数的问题

问题分析与解决

错误原因

你在group_by()里错误地使用了c(id, code, Type),c()函数会把三个列的所有元素拼接成一个单一长向量,长度是原数据行数的3倍(你的报错里显示88765150*3=266295450),而group_by()需要的是按多个列进行分组,不是合并成一个向量,因此出现了行数不匹配的错误。

正确代码

直接在group_by()里列出需要分组的列名即可,不需要用c()包裹:

library(dplyr)

df %>% 
  group_by(id, code, Type) %>% 
  summarise(n = n(), .groups = "drop")

注:.groups = "drop"用于取消分组状态,输出整洁的结果;如果不需要取消分组,可以省略这个参数。

运行结果

执行上述代码后,会得到你期望的输出:

id  code Type     n
  <dbl> <chr> <chr> <int>
1     4 3.7   A         2
2     4 244   B         1
3     6 3     A         1
4     6 14    B         1
5     6 D5    A         1
6     8 563   B         1
7     8 75.1  B         2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:52:43