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

R语言如何从嵌套列表合并指定数据框(无需循环)

合并嵌套列表中的数据框(无循环)

针对你给出的嵌套列表结构,这里提供两种简洁的非循环方法,可直接提取并合并其中的df数据框:

方法1:Base R 原生实现

先用lapply遍历主列表,提取每个子列表里的df元素,得到一个仅包含数据框的新列表,再用do.call(rbind, ...)合并所有行:

mlst = list(test = list(df = data.frame(x = 1:10, y = 21:30), list(c(1:2))),
            test2 = list(df = data.frame(x = 1:10, y = 21:30), list(c(1:2))))

# 基础写法
combined_df <- do.call(rbind, lapply(mlst, function(x) x$df))
# 更简洁的写法:用[[直接提取命名元素
combined_df <- do.call(rbind, lapply(mlst, "[[", "df"))

方法2:tidyverse 工具包实现

借助purrr包的map_dfr函数,一步完成遍历提取+按行合并操作:

library(purrr)

combined_df <- map_dfr(mlst, ~ .x$df)

两种方法最终都会得到行数为20(10+10)的合并数据框,完全保留原数据框的列结构。

内容的提问来源于stack exchange,提问作者M. Beausoleil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:24:53