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

R中如何用aggregate按眼睛颜色分组计算名字含数字角色的身高均值

错误原因

你的代码出错的核心是基础R的aggregate函数与dplyr管道%>%的参数传递逻辑不匹配:%>%会默认将左侧的处理结果作为右侧函数的第一个入参,但aggregate的第一个入参需要是分组公式,第二个才是用来计算的数据集,直接拼接管道会出现参数错位,无法得到正确结果。此外如果数据集里存在身高缺失值,不加忽略缺失的参数也会导致均值结果返回NA。

修正方案

方案1:调整aggregate参数适配管道

用.占位符指定管道传入的数据集对应aggregate的data参数即可,额外加na.rm = TRUE忽略缺失身高的记录:

sw %>%
  filter(grepl('[0-9]', name)) %>%
  aggregate(height ~ eye_color, data = ., FUN = mean, na.rm = TRUE) %>%
  setNames(c("Eye color", "Mean"))

方案2:全用dplyr语法实现(更推荐,逻辑更统一)

不需要混用基础R的aggregate函数,直接用dplyr自带的分组汇总函数完成需求:

sw %>%
  filter(grepl('[0-9]', name)) %>%
  group_by(eye_color) %>%
  summarise(Mean = mean(height, na.rm = TRUE)) %>%
  rename(`Eye color` = eye_color)

如果不需要忽略身高缺失的记录,删掉参数里的na.rm = TRUE即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 19:24:06