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

如何用R语言生成分类变量的多国家计数汇总表

解决方法:用tidyverse工具生成目标汇总表

直接用dplyr + tidyr的组合可以快速实现需求,步骤清晰且避免冗余NA值:

步骤1:加载依赖包

library(dplyr)
library(tidyr)

步骤2:数据整理与计数

假设你要统计的变量是sex和educ,执行以下代码:

# 1. 将多变量转成长格式,统一处理
d_long <- d %>%
  pivot_longer(cols = c(sex, educ),  # 指定需要统计的变量
               names_to = "variable",  # 新增列存储原变量名
               values_to = "category") # 新增列存储变量类别

# 2. 按变量、类别、国家分组计数
count_data <- d_long %>%
  filter(!is.na(category)) %>%  # 可选:过滤掉类别为NA的记录
  group_by(variable, category, country) %>%
  summarise(count = n(), .groups = "drop")

# 3. 转成目标宽格式:每行是类别,每列是国家计数
summary_table <- count_data %>%
  pivot_wider(names_from = country,  # 把国家转成列名
              values_from = count,   # 对应列填充计数
              values_fill = 0)       # 无数据的位置填充0(避免NA冗余)

结果说明

最终的summary_table结构如下:

variablecategoryChinaUSA...
sexMale12085...
sexFemale13592...
educPrimary7856...
educHigh10277...

如果需要把variable和category合并成一列(比如统一叫"类别"),可以再加一步:

summary_table <- summary_table %>%
  mutate(类别 = paste(variable, category, sep = ": ")) %>%
  select(类别, everything(), -variable, -category)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:46:07