简化嵌套数据框的列表

时间:2020-11-12 06:06:27

标签: r json list nested combinations

对不起,我是R新手 我需要准备一个json格式的数据框。但是我很难将变量恢复为原始格式c(1,2,3,...)。例如

library(tidyr)
x<-tibble(x = 1:3, y = list(c(1,5), c(1,5,10), c(1,2,3,20)))
View(x)

这显示

1           1              c(1, 5)
2           2              c(1, 5, 10)
3           3              c(1, 2, 3, 20)

x1<-x %>% unnest(y)
x2<-x1 %>% nest(data=c(y))
View(x2)

This shows
1           1              1 variable 
2           2              1 variable 
3           3              1 variable

所需格式为c(...),而不是变量以准备json数据文件

1           1              c(1, 5)
2           2              c(1, 5, 10)
3           3              c(1, 2, 3, 20)

请帮助

1 个答案:

答案 0 :(得分:0)

x$ydouble s的列表列。而x2$ytibble s的列表列。

使用mapunlisttibble变成double s。

library(tidyverse)

x2 %>%
  mutate(data = map(data, unlist))
#> # A tibble: 3 x 2
#>       x data     
#>   <int> <list>   
#> 1     1 <dbl [2]>
#> 2     2 <dbl [3]>
#> 3     3 <dbl [4]>

或者,您可以使用nest代替summarise

x1 %>%
  group_by(x) %>%
  summarise(data = list(y))
#> # A tibble: 3 x 2
#>       x data     
#>   <int> <list>   
#> 1     1 <dbl [2]>
#> 2     2 <dbl [3]>
#> 3     3 <dbl [4]>