我在R中有这个列表:
my_list = list("word",c("word", "word"), "word", c("word", "word","word"), "word")
[[1]]
[1] "word"
[[2]]
[1] "word" "word"
[[3]]
[1] "word"
[[4]]
[1] "word" "word" "word"
[[5]]
[1] "word"
我想把这个列表转换成一个数据框,看起来像这样:
col1 col2 col3
1 word
2 word word
3 word
4 word word word
5 word
# source code of the desired output
structure(list(col1 = c("word", "word", "word", "word", "word"
), col2 = c("", "word", "", "word", ""), col3 = c("", "", "",
"word", "")), class = "data.frame", row.names = c(NA, -5L))
我尝试使用此处提供的答案(How to split a column of list into several columns using R)来回答我的问题:
z = my_list
x <- do.call(rbind, z)
colnames(x) <- LETTERS[1:ncol(x)]
h = data.frame(cbind(z[c("sg", "time")], x))
但这并没有给我想要的输出。
谁能告诉我怎么做这个?
谢谢你,谢谢你
2条答案
按热度按时间eeq64g8w1#
您可以使用
lapply
使列表元素的长度相同,然后使用do.call
和rbind
创建所需的输出:输出量
如果您希望有空白而不是
NA
值:输出量:
9rygscc12#
使用
stringi::stri_list2matrix
:或者用
sapply
表示: