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

如何在R中对tibble列表做两类汇总并分表写入对应Excel

处理tibble列表并导出统计结果到Excel

所需R包

需要加载以下包完成任务:

  • dplyr:用于数据统计计算
  • purrr:用于批量遍历处理列表
  • openxlsx:用于生成和写入Excel文件

步骤1:准备数据(示例)

如果已有现成的tibble列表,可跳过此步骤。以下是创建示例列表的代码:

library(dplyr)
library(purrr)
library(openxlsx)

# 构建包含两个tibble的示例列表
tibble_list <- list(
  tibble1 = tibble(colA = c("A", "B", "A", "C"), colC = c("X", "X", "Y", "Y")),
  tibble2 = tibble(colA = c("B", "B", "A"), colC = c("Z", "X", "Z"))
)

步骤2:定义统计函数

编写函数对单个tibble的colA和colC分别统计各类项的总数:

summarize_tibble <- function(tb) {
  # 统计colA的类别频数
  colA_summary <- tb %>%
    count(colA, name = "total") %>%
    rename(category = colA) %>%
    mutate(type = "colA")
  
  # 统计colC的类别频数
  colC_summary <- tb %>%
    count(colC, name = "total") %>%
    rename(category = colC) %>%
    mutate(type = "colC")
  
  # 返回两个汇总结果的列表
  list(colA_summary = colA_summary, colC_summary = colC_summary)
}

步骤3:批量处理tibble列表

使用map函数遍历整个列表,批量生成统计结果:

# 对列表中每个tibble执行统计
results_list <- map(tibble_list, summarize_tibble)

步骤4:导出到Excel文件

使用walk2函数将每个tibble的统计结果写入对应名称的Excel工作簿,每个汇总结果作为独立工作表:

# 遍历结果列表,生成对应Excel文件
walk2(names(results_list), results_list, function(tb_name, tb_results) {
  # 创建新工作簿
  wb <- createWorkbook()
  
  # 添加colA统计工作表并写入数据
  addWorksheet(wb, sheetName = "colA_summary")
  writeData(wb, sheet = "colA_summary", x = tb_results$colA_summary)
  
  # 添加colC统计工作表并写入数据
  addWorksheet(wb, sheetName = "colC_summary")
  writeData(wb, sheet = "colC_summary", x = tb_results$colC_summary)
  
  # 保存工作簿,文件名与tibble名称一致
  saveWorkbook(wb, file = paste0(tb_name, ".xlsx"), overwrite = TRUE)
})

说明

  • 执行完代码后,当前工作目录下会生成与列表中每个tibble同名的Excel文件
  • 每个Excel文件包含两个工作表:colA_summary(colA各类项的统计结果)和colC_summary(colC各类项的统计结果)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 13:33:21