我有下面的嵌套列表l(下面的dput
):
> l
$A
$A$`1`
[1] 1 2 3
$A$`2`
[1] 3 2 1
$B
$B$`1`
[1] 2 2 2
$B$`2`
[1] 3 4 3
我想将其转换为分组 Dataframe ,其中A和B是第一个分组列,1
和2
是具有各自值的子组。
group subgroup values
1 A 1 1
2 A 1 2
3 A 1 3
4 A 2 3
5 A 2 2
6 A 2 1
7 B 1 2
8 B 1 2
9 B 1 2
10 B 2 3
11 B 2 4
12 B 2 3
正如你所看到的,A和B是主组,1
和2
是子组,使用purrr::flatten(l)
或unnest
是不起作用的,所以我想知道是否有人知道如何将嵌套列表转换为分组行 Dataframe ?dput
/l:
l <- list(A = list(`1` = c(1, 2, 3), `2` = c(3, 2, 1)), B = list(`1` = c(2,
2, 2), `2` = c(3, 4, 3)))
4条答案
按热度按时间6ojccjat1#
使用 stack 和rowbind,ID为:
gblwokeq2#
您可以使用
enframe()
将列表转换为data.frame
,并使用unnest
将value
列转换两次。ccgok5k53#
将列表直接转换为数据框,然后将其透视为长格式,并按所需顺序进行
arrange
操作。lqfhib0f4#
您可以将
rrapply
与unnest
结合使用,这样做的好处是可以处理任意长度的列表: