This is a simple version of purrr::transpose, only for lists with 2 levels.

invertList(l)

Arguments

l

A list with 2 levels. If some levels are absent, they will be NULL

Value

A list with 2 levels deep, inverted from l

Examples

# create a 2-deep, 2 levels in first, 3 levels in second
a <- list(a = list(d = 1, e = 2:3, f = 4:6), b = list(d = 5, e = 55))
invertList(a) # creates 2-deep, now 3 levels outer --> 2 levels inner
#> $d
#> $d$a
#> [1] 1
#> 
#> $d$b
#> [1] 5
#> 
#> 
#> $e
#> $e$a
#> [1] 2 3
#> 
#> $e$b
#> [1] 55
#> 
#> 
#> $f
#> $f$a
#> [1] 4 5 6
#> 
#> $f$b
#> NULL
#> 
#>