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

如何将R语言中元素长度不等的列表转换为两列dataframe

R 命名列表转两列数据框的简便实现

方法1:Base R 原生实现(最简)

R 自带的stack()函数天生适配这类需求,专门用于将命名列表转换为长格式数据框,仅需一行代码:

# stack默认输出列名为values、ind,用setNames修改为你需要的列名
df <- setNames(stack(myList), c("Value", "List"))

输出结果和你预期的格式完全一致,无需手动循环、绑定操作。

方法2:tidyverse 生态实现

如果你日常使用tidyverse系列工具,可以用以下两种写法实现:

写法1:enframe + unnest 组合

library(tidyverse)

df <- enframe(myList, name = "List", value = "Value") %>% 
  unnest(cols = Value)

写法2:purrr::map_df 直接生成

df <- map_df(myList, ~data.frame(Value = .x), .id = "List")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:00:04