R 将具有嵌套列表的列表转换为具有嵌套数据帧的单行

R 将具有嵌套列表的列表转换为具有嵌套数据帧的单行,r,tibble,R,Tibble,我试图将通过API检索并由jsonlite转换为列表的对象转换为单行TIBLE(即,列表中的每个项都成为TIBLE中的变量) 复杂的是,除了一组单独的值之外,嵌套在对象中的最后一项是一个对象数组,jsonlite将其转换为两个列表的列表,每个列表包含两个项(我使用SimpleDataFrame=FALSE) 下面的reprex中使用了类似于实际API数据的简化结构 库(tidyverse) dat#A tible:2 x 3 #>身份证姓名办事处 #> #>1 1.00

我试图将通过API检索并由jsonlite转换为列表的对象转换为单行TIBLE(即,列表中的每个项都成为TIBLE中的变量)

复杂的是,除了一组单独的值之外,嵌套在对象中的最后一项是一个对象数组,jsonlite将其转换为两个列表的列表,每个列表包含两个项(我使用SimpleDataFrame=FALSE)

下面的reprex中使用了类似于实际API数据的简化结构

库(tidyverse)
dat#A tible:2 x 3
#>身份证姓名办事处
#>             
#>1 1.00 Jo Bloggs
#>2.1.00 Jo Bloggs
由(v0.2.0)于2018年2月26日创建

使用as_tible()进行转换会生成一个两行数据帧,复制所有非嵌套值,两个嵌套列表分别位于单独的行上


我应该做些什么更改,以获得一行数据,最后一列包含嵌套的2 x 2 dataframe/tibble?提前感谢。

您可以使用
mutate
更改Office列

res1 <- df %>% mutate(offices = list(bind_rows(map(offices,as.tibble))))
> res1
# A tibble: 2 x 3
     id name      offices         
  <dbl> <chr>     <list>          
1     1 Jo Bloggs <tibble [2 x 2]>
2     1 Jo Bloggs <tibble [2 x 2]>

我想你应该先修改列表,创建一个TIBLE或数据框<代码>purrr::transpose(dat$offices)%%>%lappy(未列出)%%>%as_tible将为您提供2x2 tible。
res <- res1[!duplicated(res1[1]),]
> res
# A tibble: 1 x 3
     id name      offices         
  <dbl> <chr>     <list>          
1     1 Jo Bloggs <tibble [2 x 2]>