R编程:使用group_by函数生成分组汇总表的问题求助
R代码问题排查与修复
错误原因
- 核心错误是在
summarize()函数内误用了count():count()是独立的分组计数函数,会直接返回统计表格,不能作为汇总函数嵌套在summarize()中。分组后统计当前组的行数,应该使用n()函数。 - 附加隐患:原代码没有加
na.rm = TRUE参数,如果原始duration列存在空值,统计结果会返回NA,建议补充该参数过滤空值。
可直接运行的修复代码
table_clean2 %>% group_by(member_casual) %>% summarize( number_trips = n(), duration_min = min(duration, na.rm = TRUE), duration_max = max(duration, na.rm = TRUE), duration_total = sum(duration, na.rm = TRUE) )
优化写法推荐
如果后续需要对多个数值列做同类统计,可以用across()语法简化代码,自动生成规范命名字段,避免重复编写:
table_clean2 %>% group_by(member_casual) %>% summarize( number_trips = n(), # 批量对duration列做多个统计,自动生成[字段名_统计名]格式的字段 across(duration, list(min = min, max = max, total = sum, avg = mean), na.rm = TRUE) )
内容的提问来源于stack exchange,提问作者Hayley
相关产品推荐
相关产品推荐

