如何在R中让summary()函数仅显示最小值、均值和最大值?
解决方法:自定义数值型变量的简洁汇总
首先,base R的summary()函数没有直接参数可以只保留最小值、均值和最大值,不过可以通过以下几种方式实现你的需求:
1. 基础R自定义函数
自己写一个轻量函数,精准提取你需要的三个统计量,还能兼容缺失值处理:
simple_summary <- function(x) { if (is.numeric(x)) { data.frame( Min = min(x, na.rm = TRUE), Mean = mean(x, na.rm = TRUE), Max = max(x, na.rm = TRUE) ) } else { # 非数值型变量保留默认汇总逻辑 summary(x) } } # 用内置women数据集测试 simple_summary(women$height)
2. dplyr批量汇总(适合整数据框)
如果要对数据框里所有数值型变量批量生成简洁汇总,用tidyverse的dplyr更高效,还能直接在Rmarkdown里生成整洁表格:
library(dplyr) women %>% summarise(across(where(is.numeric), list(Min = ~min(., na.rm=TRUE), Mean = ~mean(., na.rm=TRUE), Max = ~max(., na.rm=TRUE))))
配合knitr::kable()还能一键美化表格格式,适配Rmarkdown输出。
关于quantile.type参数的解释
这个参数和你简化汇总的需求无关,它是用来指定分位数的计算规则的。R里分位数有9种不同的计算逻辑(对应type=1到9),比如summary()默认用的是type=7的规则。这个参数只会改变分位数的计算结果,无法让summary()不输出分位数相关内容。
内容的提问来源于stack exchange,提问作者Amandine
相关产品推荐
相关产品推荐

