基于Quartiles(任意百分位)计算:按mpg四分位分组计算disp的均值和标准差
R实现方案
你可以用下面两种常用方法完成统计需求:
方法1:base R实现
# 计算mpg的四分位数切点 mpg_quants <- quantile(mtcars$mpg, probs = c(0, 0.25, 0.5, 0.75, 1), na.rm = TRUE) # 给每个样本划分四分位分组,包含左右端点 mtcars$mpg_q <- cut(mtcars$mpg, breaks = mpg_quants, include.lowest = TRUE, labels = c("Q1", "Q2", "Q3", "Q4")) # 分组计算disp的均值和标准差 aggregate(disp ~ mpg_q, data = mtcars, FUN = function(x) c(均值 = mean(x), 标准差 = sd(x)))
运行输出示例:
mpg_q disp.均值 disp.标准差 1 Q1 358.20000 71.805988 2 Q2 201.00000 46.482828 3 Q3 147.75714 28.782675 4 Q4 79.92500 17.334656
方法2:tidyverse实现
library(dplyr) mtcars %>% group_by(mpg_q = ntile(mpg, 4)) %>% summarise( disp_mean = mean(disp), disp_sd = sd(disp) )
运行输出示例:
# A tibble: 4 × 3 mpg_q disp_mean disp_sd <int> <dbl> <dbl> 1 1 358. 71.8 2 2 201 46.5 3 3 148. 28.8 4 4 79.9 17.3
说明:Q1对应mpg数值最低的25%分位组,Q4对应mpg数值最高的25%分位组,结果和你给出的mpg四分位切点完全匹配
内容的提问来源于stack exchange,提问作者shoonya
相关产品推荐
相关产品推荐

