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

使用dplyr计算mtcars分组下mpg5-95分位数区间统计量并输出长格式

解决方法

首先修正你原有代码中min统计值的计算错误(误写为mean(mpg)),你可以通过两种方式实现单次管道操作输出长格式结果:

方法1:仅使用dplyr实现(无需额外加载其他包,推荐)

利用dplyr 1.0.0及以上版本支持的reframe()函数直接生成长格式结果:

library(dplyr)

mtcars %>%
  group_by(cyl, am) %>%
  filter(mpg >= quantile(mpg, 0.05) & mpg <= quantile(mpg, 0.95)) %>% 
  reframe(
    varType = c("mean", "max", "min", "sd"),
    mpg = c(mean(mpg), max(mpg), min(mpg), sd(mpg))
  )

方法2:dplyr结合tidyr实现

先计算宽格式统计值,再用pivot_longer()转长格式:

library(dplyr)
library(tidyr)

mtcars %>%
  group_by(cyl, am) %>%
  filter(mpg >= quantile(mpg, 0.05) & mpg <= quantile(mpg, 0.95)) %>% 
  summarise(
    mean = mean(mpg),
    max = max(mpg),
    min = min(mpg),
    sd = sd(mpg)
  ) %>%
  pivot_longer(
    cols = c(mean, max, min, sd),
    names_to = "varType",
    values_to = "mpg"
  )

两种方式输出的结果都完全匹配你给出的预期格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:18:03