我在网络上搜索从列表创建数据框架的方法,但将列表元素的名称保留为列本身。我在2014年就看到过这,但很多函数都被废弃了,而且/或它们都没有做我想做的事情。
这是我到目前为止所做的事情,但这是一种令人讨厌的做法。
RNGkind("Mersenne-Twister")
set.seed(42)
my_list <- list(a = rnorm(22, 4, 1),
b = sample(1:1000, 10, replace = T),
c = rep(1334, 5))
my_df <- data.frame(names = rep(names(my_list), do.call(c, lapply(my_list, length))),
values = do.call(c, my_list))有什么更优雅的方法来完成这个任务吗?我不太喜欢tidyverse或tidyr,但如果它比这个更流线型的话,我愿意做任何事情。
发布于 2019-08-15 05:42:47
我们可以使用来自stack的base R
my_df2 <- stack(my_list)[2:1]
all.equal(my_df, my_df2, check.attributes = FALSE)
#[1] TRUE或使用tidyverse
library(tibble)
library(tidyr)
enframe(my_list) %>%
unnest(value)https://stackoverflow.com/questions/57505277
复制相似问题