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

为何R语言group_by函数无法合并同sport类型的数据?

问题原因

你在summarise里直接写sports = sports,会保留分组内的每一行sports值,同时没有对计算出的prop做聚合处理,所以每个运动类型的行不会合并成单行。

修正方案

需要对prop使用聚合函数(比如均值、总和等,根据你的分析需求选择),而且group_by指定的分组列sports会自动保留在summarise的结果里,不需要重复赋值。

修正后的代码示例:

library(tidyverse)
library(tidytuesdayR) # 已安装过就无需重复执行install.packages

tuesdata <- tidytuesdayR::tt_load('2022-03-29')

tuesdata$sports %>% 
  dplyr::group_by(sports) %>%
  # 这里用mean计算每组prop的平均值,可按需换成sum、median等聚合函数
  dplyr::summarise(prop = mean((partic_men)/(partic_men + partic_women), na.rm = TRUE),
                   .groups = "drop") # .groups="drop"可取消结果的分组状态
补充说明
  • 如果需要保留结果的分组属性,可以将.groups参数改为"keep";默认状态下summarise会保留分组并给出提示。
  • na.rm = TRUE用于在聚合计算时自动忽略NA值,和单独调用na.omit()效果一致,但放在聚合函数里更高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:30:55