求可输出含缺失值占比的数值型变量统计汇总的R包
能生成含缺失值占比的数值型变量统计汇总的R包推荐
当然有,下面推荐几个能满足需求的实用工具:
1. skimr包
skimr专门用于生成简洁全面的变量统计摘要,默认输出就包含缺失值的数量和占比,使用起来非常便捷。
示例代码:
# 安装并加载包 install.packages("skimr") library(skimr) # 测试数据 x <- rnorm(1000, 5, 0.6) x[sample(seq(1, length(x)), 100)] <- NA # 生成统计摘要 skim(x)
核心输出示例:
── Variable type: numeric ───────────────────────────────────────────────────────────────────────────
variable missing missing_pct complete complete_pct n mean sd p0 p25 p50 p75 p100 hist
x 100 10% 900 90% 900 5.02 0.59 3.13 4.63 5.02 5.40 7.52 ▇▇▇▇▇▇▇▇▇▇
结果里直接展示了缺失值占比missing_pct列,同时包含均值、分位数等常用统计量。
2. 自定义dplyr函数
如果需要完全自定义统计项的输出,可以用dplyr配合自定义函数,灵活控制要展示的内容:
示例代码:
library(dplyr) # 定义统计函数 numeric_summary <- function(vec) { tibble( 总样本量 = length(vec), 缺失值数量 = sum(is.na(vec)), 缺失值占比 = paste0(round(sum(is.na(vec))/length(vec)*100, 1), "%"), 均值 = round(mean(vec, na.rm = TRUE), 3), 中位数 = round(median(vec, na.rm = TRUE), 3), 标准差 = round(sd(vec, na.rm = TRUE), 3), 最小值 = round(min(vec, na.rm = TRUE), 3), 最大值 = round(max(vec, na.rm = TRUE), 3), 下四分位数 = round(quantile(vec, 0.25, na.rm = TRUE), 3), 上四分位数 = round(quantile(vec, 0.75, na.rm = TRUE), 3) ) } # 应用到测试数据 numeric_summary(x)
输出示例:
# A tibble: 1 × 10 总样本量 缺失值数量 缺失值占比 均值 中位数 标准差 最小值 最大值 下四分位数 上四分位数 <int> <int> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 1000 100 10% 5.02 5.02 0.59 3.13 7.52 4.63 5.40
3. gtsummary包
如果需要生成可导出的美观统计表格,gtsummary可以轻松配置包含缺失值占比的统计项:
示例代码:
install.packages("gtsummary") library(gtsummary) # 将向量转为数据框 df <- tibble(x = x) # 生成统计表格 df %>% tbl_summary( type = all_continuous() ~ "continuous2", statistic = all_continuous() ~ c("{mean} ({sd})", "{median} ({p25}, {p75})", "{min}, {max}", "{n_miss} ({p_miss}%)") )
输出示例(表格形式):
| 变量 | 均值 (标准差) | 中位数 (Q1, Q3) | 最小值, 最大值 | 缺失值 (占比) |
|---|---|---|---|---|
| x | 5.02 (0.59) | 5.02 (4.63, 5.40) | 3.13, 7.52 | 100 (10.0%) |
内容的提问来源于stack exchange,提问作者robertspierre
相关产品推荐
相关产品推荐

