是否可以从另一个嵌套列表创建列表?

时间:2019-06-12 19:15:48

标签: r list

我有一个列表,其中处理了n个数据,每个数据中有15个数组。我必须为每种数组创建一个列表,例如

list1 <- Dados_processados[[1]][[1]], Dados_processados[[2]][[1]], 
   Dados_processados[[3]][[1]]...Dados_processados[[n]][[1]]

这是数据的样子

enter image description here

我试图用'while'来做到这一点,但是它出错了。

1 个答案:

答案 0 :(得分:0)

为使示例更小,我将n设为3,并将每个列表的长度设为5,而不是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将按照您描述的方式将列表“由内而外”。

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