如何将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
相关产品推荐
相关产品推荐

