将具有混合内容的命名列表转换为数据框

RSz*_*SzT 8 r dataframe

是否有更好,更好的方法将混合内容的命名列表转换为数据框?

工作实例:

my_list <- list("a" = 1.0, "b" = "foo", "c" = TRUE)

my_df <- data.frame(
  "key" = names(my_list),
  stringsAsFactors = F
)

my_df[["value"]] <- unname(my_list)
Run Code Online (Sandbox Code Playgroud)

是否可以一步完成此转换?

akr*_*run 10

我们可以使用stackbase R

stack(my_list)
Run Code Online (Sandbox Code Playgroud)

根据 ?stack

堆栈函数用于将数据框或列表中作为单独列可用的数据转换为可用于方差模型或其他线性模型分析的单个列.取消堆栈功能可以反转此操作.


或者 enframe

library(tidyverse)
enframe(my_list) %>% # creates the 'value' as a `list` column
   mutate(value = map(value, as.character)) %>% # change to single type
   unnest 
Run Code Online (Sandbox Code Playgroud)