To make the example smaller, I'll take n
to be 3
and each list to be length 5
rather than 15
.
l <- list(
as.list(1:5),
as.list(11:15),
as.list(21:25)
)
str(l)
#> List of 3
#> $ :List of 5
#> ..$ : int 1
#> ..$ : int 2
#> ..$ : int 3
#> ..$ : int 4
#> ..$ : int 5
#> $ :List of 5
#> ..$ : int 11
#> ..$ : int 12
#> ..$ : int 13
#> ..$ : int 14
#> ..$ : int 15
#> $ :List of 5
#> ..$ : int 21
#> ..$ : int 22
#> ..$ : int 23
#> ..$ : int 24
#> ..$ : int 25
purrr::transpose
will turn the list "inside-out" in the way you describe.
l2 <- purrr::transpose(l)
str(l2)
#> List of 5
#> $ :List of 3
#> ..$ : int 1
#> ..$ : int 11
#> ..$ : int 21
#> $ :List of 3
#> ..$ : int 2
#> ..$ : int 12
#> ..$ : int 22
#> $ :List of 3
#> ..$ : int 3
#> ..$ : int 13
#> ..$ : int 23
#> $ :List of 3
#> ..$ : int 4
#> ..$ : int 14
#> ..$ : int 24
#> $ :List of 3
#> ..$ : int 5
#> ..$ : int 15
#> ..$ : int 25