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

R语言中如何合并列表内子数据框:将cat_a/cat_b合并为cat、item_a/item_b合并为item

合并列表中的同类型数据框

需要将列表ori_list内的同类型子数据框合并:把cat_a和cat_b合并为名为cat的数据框,把item_a和item_b合并为名为item的数据框,最终得到结构如示例new_list的结果。

原始数据与列表构造

# 构造原始数据框
cat_a <- data.frame(name=c('A','B','C'),amount=c(1,2,3))
cat_b <- data.frame(name=c('w','B','C'),amount=c(4,2,3))
item_a <- data.frame(name=c('z','o','C'),amount=c(3,4,1))
item_b <- data.frame(name=c('n','B','C'),amount=c(6,6,3))

# 构造目标处理的ori_list
files <- ls(pattern = 'cat|item') %>% purrr::set_names()
ori_list <- list(mget(files))

合并实现代码

利用dplyr和purrr工具包可以高效完成分组合并:

library(dplyr)
library(purrr)
library(stringr)

# 提取ori_list中的数据框集合
data_frames <- ori_list[[1]]

# 按名称前缀分组并合并同组数据框
new_list <- data_frames %>%
  split(str_extract(names(.), "^[a-z]+")) %>%
  map(bind_rows)

合并结果

运行上述代码后,new_list的结构与预期完全一致:

> new_list
$cat
  name amount
1    A      1
2    B      2
3    C      3
4    w      4
5    B      2
6    C      3

$item
  name amount
1    z      3
2    o      4
3    C      1
4    n      6
5    B      6
6    C      3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:15:07