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

如何在R中批量生成多分类变量的计数与百分比统计表

批量生成分类变量计数与占比汇总表

问题背景

目前通过以下代码单独获取单个分类变量的计数与占比:

table(df$var1)

table(df$var1)%>%
prop.table()

但数据集中包含50余个分类变量,手动逐个处理效率极低,需要批量生成包含变量名、分类水平、计数、百分比的标准化汇总表,用于报告输出。

解决方案(R语言实现)

1. 加载依赖包

需要用到dplyr、tidyr和purrr进行数据处理,若未安装需先运行安装命令:

install.packages(c("dplyr", "tidyr", "purrr", "knitr"))

加载包:

library(dplyr)
library(tidyr)
library(purrr)
library(knitr)

2. 批量处理分类变量

以下代码会自动识别数据框中的分类变量(因子/字符型),批量生成计数与占比汇总表:

# 筛选所有分类变量列名
cat_vars <- df %>% 
  select(where(is.factor) | where(is.character)) %>% 
  colnames()

# 遍历生成汇总表
summary_table <- map_dfr(cat_vars, function(var) {
  table(df[[var]]) %>%
    as.data.frame(stringsAsFactors = FALSE) %>%
    rename(分类水平 = Var1, 计数 = Freq) %>%
    mutate(
      百分比 = round((计数 / sum(计数)) * 100, 2), # 保留2位小数
      变量名 = var
    ) %>%
    select(变量名, 分类水平, 计数, 百分比)
})

3. 输出报告用表格

用kable函数生成美观的可直接用于报告的表格:

kable(summary_table, caption = "分类变量计数与占比汇总表", align = "cccc")

补充说明

  • 若需调整百分比小数位数,修改round函数的第二个参数即可;
  • 若数据中存在缺失值,可在table函数中添加useNA = "ifany"参数,将缺失值纳入统计;
  • 输出的summary_table为数据框格式,可直接导出为Excel文件:
    writexl::write_xlsx(summary_table, "分类变量汇总表.xlsx")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 13:12:18