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

R语言中按用户+日期双分组计算心率平均值的语法问题

解决R语言分组计算每人每日平均心率的问题

你的问题出在连续调用group_by()上——第二次调用group_by(Date)会替换掉之前的分组(Id),所以最终只按日期计算了整体平均值,没有区分用户。

正确的代码写法

把两个分组变量(Id和Date)放在同一个group_by()里,就能实现按用户+日期的分组统计:

hr_avg <- hr_per_second %>% 
  group_by(Id, Date) %>% 
  summarize(daily_avg_hr = mean(Value, na.rm = TRUE)) %>% 
  ungroup()

细节说明

  • 添加na.rm = TRUE是为了忽略心率数据中的缺失值(如果有的话),避免计算结果变成NA
  • summarize()里给结果列命名(比如daily_avg_hr),方便后续数据关联
  • 最后加ungroup()可以取消分组状态,避免后续操作时意外继承分组规则

针对大数据的小建议

因为你的数据集很大,还可以试试这些优化:

  • 如果dplyr处理速度不够,可尝试用data.table包,它处理大数据的效率更高,语法也简洁:
library(data.table)
setDT(hr_per_second)
hr_avg <- hr_per_second[, .(daily_avg_hr = mean(Value, na.rm = TRUE)), by = .(Id, Date)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 11:45:28