将嵌套列表转换为单个数据帧或小标题

问题描述 投票:0回答:2

我有一个非常大的嵌套列表,我想对一个平面数据框进行嵌套。我创建了列表的前两个元素的dput以快速复制/粘贴(对不起,创建df后我可以清理很多东西)与我出于某种原因。

谢谢!

这里是前两个元素的输出-完整列表有数千个:

list(structure(list(first = structure(list(text = c("\n\tMenghe a'Nyam\n\t\n\n  \n\n  \n\n  \n\n  \n          
Position:\n  \n  Forward\n\n\n\n  6-5, 215lb (196cm, 97kg) \n  \n\n  \n\n  \n  \n  \n\n  School:     
Canisius\n\n\n\n\n\n  More player info\n\n\n\n\n\n"  , 
"\n\tMenghe a'Nyam\n\t\n\n  \n\n  \n\n  \n\n  \n  Position:\n  \n  Forward\n\n\n\n  6-5, 215lb 
(196cm, 97kg) \n  \n\n  \n\n  \n  \n  \n\n  School: Canisius\n\n\n\n\n\n  More player 
info\n\n\n\n\n\n"  , 
"\n\tMenghe a'Nyam\n\t\n\n  \n\n  \n\n  \n\n  \n  Position:\n  \n  Forward\n\n\n\n  6-5, 215lb 
(196cm, 97kg) \n  \n\n  \n\n  \n  \n  \n\n  School: Canisius\n\n\n\n\n\n  More player 
info\n\n\n\n\n\n"  
)), row.names = c(NA, -3L), class = c("tbl_df", "tbl", "data.frame"
)), second = structure(list(Season = c("2006-07", "2007-08", 
"Career"), name = c("menghe-anyam", "menghe-anyam", "menghe-anyam"
)), row.names = c(NA, -3L), class = "data.frame")), row.names = c(NA, 
-3L), class = c("tbl_df", "tbl", "data.frame")), structure(list(
first = structure(list(text = c("\n\tJordan Aaberg\n\t\n\n  \n\n  \n\n  \n\n  \n  Position:\n  \n  
Forward\n\n\n\n  6-9, 225lb (206cm, 102kg) \n  \n\n  Hometown: Rothsay, MN\n\n\n\n  \n\n  High 
School: Rothsay\n\n\n\n  \n  \n  \n\n  School: North Dakota State\n\n\n\n\n\n  More player 
info\n\n\n\n\n\n"  , 
"\n\tJordan Aaberg\n\t\n\n  \n\n  \n\n  \n\n  \n  Position:\n  \n  Forward\n\n\n\n  6-9, 225lb 
(206cm, 102kg) \n  \n\n  Hometown: Rothsay, MN\n\n\n\n  \n\n  High School: Rothsay\n\n\n\n  \n  \n  
\n\n  School: North Dakota State\n\n\n\n\n\n  More player info\n\n\n\n\n\n"  , 
"\n\tJordan Aaberg\n\t\n\n  \n\n  \n\n  \n\n  \n  Position:\n  \n  Forward\n\n\n\n  6-9, 225lb 
(206cm, 102kg) \n  \n\n  Hometown: Rothsay, MN\n\n\n\n  \n\n  High School: Rothsay\n\n\n\n  \n  \n  
\n\n  School: North Dakota State\n\n\n\n\n\n  More player info\n\n\n\n\n\n"  , 
"\n\tJordan Aaberg\n\t\n\n  \n\n  \n\n  \n\n  \n  Position:\n  \n  Forward\n\n\n\n  6-9, 225lb 
(206cm, 102kg) \n  \n\n  Hometown: Rothsay, MN\n\n\n\n  \n\n  High School: Rothsay\n\n\n\n  \n  \n  
\n\n  School: North Dakota State\n\n\n\n\n\n  More player info\n\n\n\n\n\n"  , 
"\n\tJordan Aaberg\n\t\n\n  \n\n  \n\n  \n\n  \n  Position:\n  \n  Forward\n\n\n\n  6-9, 225lb 
(206cm, 102kg) \n  \n\n  Hometown: Rothsay, MN\n\n\n\n  \n\n  High School: Rothsay\n\n\n\n  \n  \n  
\n\n  School: North Dakota State\n\n\n\n\n\n  More player info\n\n\n\n\n\n"  
)), row.names = c(NA, -5L), class = c("tbl_df", "tbl", "data.frame"
)), second = structure(list(Season = c("2009-10", "2011-12", 
"2012-13", "2013-14", "Career"), name = c("jordan-aaberg", 
"jordan-aaberg", "jordan-aaberg", "jordan-aaberg", "jordan-aaberg"
)), row.names = c(NA, -5L), class = "data.frame")), row.names = c(NA, 
-5L), class = c("tbl_df", "tbl", "data.frame")))
r nested-lists purrr
2个回答
1
投票

要在一个数据帧中获取数据,可以使用:

newdata <- do.call(rbind, lapply(data, function(x) do.call(cbind, x)))

或使用purrr

newdata <- purrr::map_df(data, ~do.call(cbind, .x))

0
投票

我们可以做bind_rows

library(dplyr)
data %>% bind_rows
© www.soinside.com 2019 - 2024. All rights reserved.