在R语言中有没有更简便的方法实现分组计算中位数、均值及标准差
解答
你可以使用以下两种更简便、易扩展的方法实现需求:
- 方法1:使用dplyr原生函数,无需额外安装依赖
dplyr 1.0.0及以上版本支持across()语法,不需要重复指定目标变量,后续要新增统计量时,只需在函数列表内添加对应函数即可,示例代码如下:
Gap %>% group_by(region) %>% summarise( across(life_expectancy, list(median = median, mean = mean, sd = sd), .names = "{.fn}") )
- 方法2:使用
rstatix扩展包快速生成统计结果
如果你可以接受安装轻量统计扩展包,rstatix的get_summary_stats()函数可以一键输出你需要的指标,代码更简洁:
# 首次使用需先安装包:install.packages("rstatix") library(rstatix) Gap %>% group_by(region) %>% get_summary_stats(life_expectancy, show = c("median", "mean", "sd"))
如果不需要限制返回指标,删掉show参数即可默认输出中位数、均值、标准差、样本量、极值等所有常用描述性统计值。
内容的提问来源于stack exchange,提问作者Lucia Langenheim Hernández
相关产品推荐
相关产品推荐

