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

如何从汇总表批量生成单元级记录数据

程序化将汇总表转换为单元级观测数据

现有一张包含分组比例和总样本量的汇总表,需要将其扩展为单元级的观测数据(长格式DataFrame),用于统计检验。原始汇总表定义如下:

tbl_summary <-
  tibble(
    outcome = c("A (%)", "B (%)", "C (%)", "D (%)", "Total (n)"),
    group_1 = c(.25, .25, .125, .325, 10),
    group_2 = c(.50, 0.0, .325, .125, 20),
    group_3 = c(.10, .40, .125, .325, 40))

tbl_summary

手动编写的转换代码(如下)仅适用于固定分组和结果的场景,无法适配多变量、多分组的扩展需求:

df_simulation <- 
  bind_rows(
    tibble(
      group = 1,
      outcome = c(
        rep("A", .25*10), 
        rep("B", .25*10), 
        rep("C", .125*10), 
        rep("D", .325*10))),
    tibble(
      group = 2,
      outcome = c(
        rep("A", .50*20), 
        rep("B", .00*20), 
        rep("C", .325*20), 
        rep("D", .125*20))),
    tibble(
      group = 3,
      outcome = c(
        rep("A", .10*40), 
        rep("B", .40*40), 
        rep("C", .125*40), 
        rep("D", .325*40))))

df_simulation

可扩展的程序化实现方案

以下代码通过tidyverse工具链实现通用转换,无需手动修改分组或结果项:

library(tidyverse)

# 1. 分离比例行和总样本量行,清理结果名称
proportion_rows <- tbl_summary %>% 
  filter(outcome != "Total (n)") %>%
  mutate(outcome = str_remove(outcome, " \\(\\%\\)"))

total_n <- tbl_summary %>% 
  filter(outcome == "Total (n)") %>%
  pivot_longer(cols = starts_with("group_"), names_to = "group", values_to = "total") %>%
  mutate(group = str_remove(group, "group_") %>% as.integer())

# 2. 转换为长格式并关联样本量,生成单元级数据
expanded_data <- proportion_rows %>%
  pivot_longer(cols = starts_with("group_"), names_to = "group", values_to = "proportion") %>%
  mutate(group = str_remove(group, "group_") %>% as.integer()) %>%
  left_join(total_n, by = "group") %>%
  mutate(outcome = map2(outcome, proportion * total, ~rep(.x, .y))) %>%
  unnest(outcome) %>%
  select(group, outcome)

expanded_data

代码说明:

  • 数据拆分:将汇总表拆分为结果比例行和总样本量行,同时去除结果名称后的(%)标记。
  • 长格式转换:把宽格式的分组列统一转为长格式,方便批量处理每个分组的比例与样本量。
  • 自动扩展:通过分组关联比例和总样本量,用map2批量生成对应数量的结果项,最终展开为单元级观测数据。

该方案自动适配任意数量的分组和结果项,无需修改代码结构即可应对扩展场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 22:09:15