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

dplyr::lag结合mutate计算分组均值差出现NA及自定义参照组问题

按顺序计算相邻组均值差

原代码执行mutate时仍保留Species分组,每个分组仅1行数据,调用lag()仅返回NA,先解除分组再计算即可:

library(tidyverse)
library(ggplot2) # mean_se为ggplot2内置函数

iris %>% 
  group_by(Species) %>% 
  group_modify(~ mean_se(.x$Sepal.Length)) %>% 
  ungroup() %>% # 关键:解除分组全局计算lag
  mutate(difference = y - lag(y))

运行后difference列保留两位小数即可得到你预期的NA、0.93、0.65结果。

指定基准组计算差值

该场景可先按最高层级分组(此处为race),提取对应基准组的均值作为参照值,再批量计算所有分组与基准的差值:

gss_cat %>% 
  group_by(race, marital) %>% 
  group_modify(~ mean_se(.x$age)) %>% 
  group_by(race) %>% # 按race分组,每个race对应一个基准值
  mutate(
    ref_y = y[marital == "No answer"], # 提取当前race下基准组的均值
    difference = y - ref_y
  )

如果不需要保留基准组的差值结果,可在末尾添加filter(marital != "No answer")清理输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:09:03