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

基于iris数据集实现变量统计汇总与ggplot直方图嵌套存储

基于现有代码的修改方案

你只需要在原有管道逻辑后追加两步操作即可实现需求:

library(tidyverse)
iris %>%
  pivot_longer(-Species, 
               names_to = "Vars", 
               values_to = "Values") %>%
  group_by(Vars) %>%
  nest() %>%
  mutate(metrics = lapply(data, function(df) df %>% summarise(obs = n(), mean = round(mean(Values),2), median = round(median(Values),2))),
         plot = lapply(data, function(df) df %>% ggplot(aes(Values)) + geom_histogram(binwidth = 0.2, fill = "skyblue", color = "black") + labs(title = first(df$Vars)))) %>%
  unnest(metrics) %>% # 拆分metrics嵌套列为独立列
  select(-data) # 删除不需要的原始嵌套数据列

更简洁的优化写法

无需嵌套后再拆分,直接在summarise中生成所有需要的列,代码逻辑更清晰:

library(tidyverse)
iris %>%
  pivot_longer(-Species, names_to = "Vars", values_to = "Values") %>%
  group_by(Vars) %>%
  summarise(
    obs = n(),
    mean = round(mean(Values), 2),
    median = round(median(Values), 2),
    plot = list(ggplot(cur_data(), aes(Values)) + 
                  geom_histogram(binwidth = 0.2, fill = "skyblue", col = "black") +
                  labs(title = cur_group()$Vars))
  )

两种写法最终输出的tibble结构都和你期望的完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:45:05