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

ggplot2中如何为不同年龄分组设置对应标准误的误差棒

差异化分组误差棒实现方法

你现有代码的问题是给所有观测统一使用1.76作为误差计算基数,只需要通过条件判断为不同年龄组匹配对应标准误,再计算误差上下界即可,不需要改动原有数据结构和因子设置逻辑。

修改后的完整代码

library(tidyverse) # 提前加载tidyverse,覆盖tibble、dplyr、forcats相关依赖函数

viz_data_one <- tibble(
  age_group = c(rep("Young Adult", 4), rep("Older Adult", 4)),
  MemoryAccuracy = c(32.8, 28.448, 27.672, 27.075, 29.667, 28.944, 27.556, 28.889),
  reward = rep(c("Self High Value", "Self Low Value", "Other High Value", "Other Low Value"), 2)
) %>% 
  mutate(
    # 按年龄组匹配对应标准误,若需要用1.94近似老年组值,直接替换1.937即可
    se = if_else(age_group == "Young Adult", 1.76, 1.937),
    upper = MemoryAccuracy + se,
    lower = MemoryAccuracy - se,
    reward = as_factor(reward) %>% fct_relevel(
      "Self High Value",
      "Self Low Value",
      "Other High Value",
      "Other Low Value"
    )
  )

修改点说明

  • 移除了tibble初始化时固定写死的upper、lower计算逻辑,将这部分计算移到后续mutate流程中,方便做分组条件判断
  • 新增se列存储每行对应的标准误值:青年成人组自动赋值1.76,老年成人组自动赋值1.937
  • 误差上下界直接调用行对应的se值计算,自动实现两组误差棒长度差异化
  • 原有的奖励条件因子重排逻辑完全保留,不会影响后续绘图的坐标轴顺序

运行View(viz_data_one)即可直接查看计算结果,确认老年组的误差范围是基于对应标准误计算的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 03:03:22