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

如何正确使用dplyr的group_by与summarise()函数计算分组均值?

解决方法:用dplyr计算每个subject_id的收缩压均值

别担心,刚接触编程遇到基础问题太正常啦!我帮你一步步梳理解决:

第一步:修正tibble的创建代码

你给出的tribble写法有语法错误——列名定义后,每一行数据需要明确分隔(换行或用逗号区分),否则R无法正确识别数据结构。正确的创建代码应该是这样:

library(tibble) # 确保加载tibble包
bp_systolic2 <- tribble(
  ~subject_id, ~time, ~systolic,
  1, 1, 120,
  1, 2, 118,
  1, 3, 121,
  2, 1, 125,
  2, 2, 131,
  3, 1, 141
)

第二步:用dplyr分组计算均值

你的group_by() + summarise()逻辑是完全正确的,只要确保先加载dplyr包,再运行代码即可。如果后续数据出现缺失值,记得给mean()加上na.rm = TRUE参数(你的数据里没有缺失,不过可以记下来备用):

library(dplyr) # 加载dplyr包

# 分组计算收缩压均值
bp_mean <- bp_systolic2 %>%
  group_by(subject_id) %>%
  summarise(mean_systolic = mean(systolic, na.rm = TRUE))

# 查看结果
bp_mean

运行后会得到这样的结果:

# A tibble: 3 × 2
  subject_id mean_systolic
       <dbl>         <dbl>
1          1          119.7
2          2          128  
3          3          141  

可能的报错原因排查

如果之前运行你的代码报错,大概率是因为tibble创建错误导致数据结构异常。比如原来的写法会让R把所有数值当成列的一部分,而不是行数据,修正后就能正常运行啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:29:34