Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将嵌套列表转换为单个数据帧或TIBLE_R_Nested Lists_Purrr - Fatal编程技术网

R 将嵌套列表转换为单个数据帧或TIBLE

R 将嵌套列表转换为单个数据帧或TIBLE,r,nested-lists,purrr,R,Nested Lists,Purrr,我有一个非常大的嵌套列表,我想把它做成一个平面数据框。我为列表的前两个元素创建了一个dput以快速复制/粘贴(很抱歉,在创建df后,我可以清理很多nonesense),我尝试了以下类似的问题,即关于将列表转换为df的问题,但由于某些原因,似乎没有一个与我的兼容 谢谢大家! 以下是前两个元素的dput-完整列表有数千个元素: list(structure(list(first = structure(list(text = c("\n\tMenghe a'Nyam\n\t\n\n \n\n \

我有一个非常大的嵌套列表,我想把它做成一个平面数据框。我为列表的前两个元素创建了一个dput以快速复制/粘贴(很抱歉,在创建df后,我可以清理很多nonesense),我尝试了以下类似的问题,即关于将列表转换为df的问题,但由于某些原因,似乎没有一个与我的兼容

谢谢大家!

以下是前两个元素的dput-完整列表有数千个元素:

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")))

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

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

我们可以只做
bind_行

library(dplyr)
data %>% bind_rows

优雅的解决方案!非常感谢。它工作得很好。你能帮我解释一下map_df和map_dfr的区别吗?还有,do.call,这个函数到底在做什么?大多数情况下,它们的工作原理完全相同,因此在本例中,您也可以使用
map\u dfr
do.call
在数据帧列表上应用函数(
cbind
),并将它们组合成一个数据帧。谢谢。我将对这些电话进行一些研究,以便将其添加到我的学习中@RonakShah我非常感谢你!
library(dplyr)
data %>% bind_rows