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

如何使用dplyr在R中生成含频数与占比的DataFrame统计表格?

在R中生成目标统计表格的解决方案

先构造你的示例数据:

# 创建示例数据框
df <- data.frame(
  Country = c("Country 1", "Country 1", "Country 2", "Country 1", "Country 2", "Country 3", "Country 3"),
  Gender = c("F", "F", "F", "M", "M", "F", "M"),
  Income = c("Inc1", "Inc2", "Inc2", "Inc1", "Inc3", "Inc3", "Inc2")
)

方法1:生成「国家-性别」交叉,单元格展示收入及计数

适合需要在每个国家×性别单元格内汇总各收入类别的场景:

library(dplyr)
library(tidyr)

result <- df %>%
  # 统计每个国家-性别-收入的出现次数
  count(Country, Gender, Income, name = "Count") %>%
  # 合并收入和计数为字符串
  mutate(Income_Stats = paste(Income, Count, sep = ": ")) %>%
  # 按国家和性别分组,汇总所有收入统计
  group_by(Country, Gender) %>%
  summarise(Income_Summary = paste(Income_Stats, collapse = ", "), .groups = "drop") %>%
  # 转成宽表,性别作为列
  pivot_wider(names_from = Gender, values_from = Income_Summary, values_fill = "无数据")

print(result)

输出结果:

# A tibble: 3 × 3
  Country   F                 M                
  <chr>     <chr>             <chr>            
1 Country 1 Inc1: 1, Inc2: 1  Inc1: 1          
2 Country 2 Inc2: 1           Inc3: 1          
3 Country 3 Inc3: 1           Inc2: 1          

方法2:生成三维列联表(国家×性别×收入)

适合需要清晰展示每个组合下各收入频数的场景:

# 用基础R的xtabs生成列联表,再转成数据框
xtabs_result <- as.data.frame(xtabs(~ Country + Gender + Income, data = df))
# 转成宽表,收入作为列
wide_result <- pivot_wider(xtabs_result, names_from = Income, values_from = Freq, values_fill = 0)

print(wide_result)

输出结果:

# A tibble: 6 × 4
  Country   Gender  Inc1  Inc2  Inc3
  <chr>     <fct>  <dbl> <dbl> <dbl>
1 Country 1 F          1     1     0
2 Country 1 M          1     0     0
3 Country 2 F          0     1     0
4 Country 2 M          0     0     1
5 Country 3 F          0     0     1
6 Country 3 M          0     1     0

方法3:用janitor包生成结构化交叉表

janitor的tabyl函数可以直接生成带分层表头的统计表格,更接近专业统计报表样式:

library(janitor)

# 生成国家×性别×收入的分层交叉表
tabyl_result <- df %>% tabyl(Country, Gender, Income)

print(tabyl_result)

输出的表格会自动按性别分组展示各收入的频数,结构更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 07:38:21