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

如何基于iris数据集生成含均值±标准差的分组tibble?

解决步骤

你的现有代码已经完成了分组计算均值、标准差,并且把数据整理成了长格式,接下来只需要把均值和标准差合并成带“±”的列,再按需调整格式即可:

  1. 合并均值与标准差:用mutate函数把Mean和dev.st拼接成新列,可设置小数位数让结果更规整。
  2. 可选:移除冗余列:如果不需要单独的均值、标准差列,用select删掉即可。
  3. 可选:转宽格式:若希望每个变量作为一列(而非行),用pivot_wider调整结构。

完整代码示例

library(tidyverse)

iris %>%
  group_by(Species) %>%
  summarise(across(everything(), list(Mean = mean, dev.st = sd))) %>% 
  pivot_longer(cols = -Species, names_to = c(".value", "variable"), names_sep = "_") %>%
  # 合并均值和标准差,保留2位小数
  mutate(summary_stats = paste0(round(Mean, 2), " ± ", round(dev.st, 2))) %>%
  # 移除单独的均值和标准差列(可选操作)
  select(-Mean, -dev.st) %>%
  # 可选:转成宽格式,每个变量作为一列
  pivot_wider(names_from = variable, values_from = summary_stats)

代码说明

  • round(Mean, 2):将均值保留2位小数,可根据需求调整位数。
  • paste0:实现字符串无缝拼接,也可以用stringr::str_glue("{round(Mean,2)} ± {round(dev.st,2)}"),写法更直观。
  • pivot_wider:如果需要宽格式(每行对应一个物种,每列对应一个变量的统计值)就添加这一步,否则保留长格式即可。

宽格式输出示例

SpeciesSepal.LengthSepal.WidthPetal.LengthPetal.Width
setosa5.01 ± 0.353.43 ± 0.381.46 ± 0.170.25 ± 0.11
versicolor5.94 ± 0.522.77 ± 0.314.26 ± 0.471.33 ± 0.20
virginica6.59 ± 0.642.97 ± 0.325.55 ± 0.552.03 ± 0.27

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:22:37