用R中的新列表中的列表重组列表

时间:2018-08-24 19:18:28

标签: r

这是我的列表:

.contest-types { 
    border: 2px solid #BCCED4;
    overflow: hidden;
    border-radius: 10px;
    color: #1B2437;
    padding: 10px; 
    margin: 20px; 
    width: 500px; 
    height: 200px;
    background-color: #F9FDFF;
    position: relative;
}

您可以看到我的列表有5个条目。每个条目还有其他10个条目,由4个元素填充。

mylist=list(list(a = c(2, 3, 4, 5), b = c(3, 4, 5, 5), c = c(3, 7, 5, 
5), d = c(3, 4, 9, 5), e = c(3, 4, 5, 9), f = c(3, 4, 1, 9), 
    g = c(3, 1, 5, 9), h = c(3, 3, 5, 9), i = c(3, 17, 3, 9), 
    j = c(3, 17, 3, 9)), list(a = c(2, 5, 48, 4), b = c(7, 4, 
5, 5), c = c(3, 7, 35, 5), d = c(3, 843, 9, 5), e = c(3, 43, 
5, 9), f = c(3, 4, 31, 39), g = c(3, 1, 5, 9), h = c(3, 3, 5, 
9), i = c(3, 17, 3, 9), j = c(3, 17, 3, 9)), list(a = c(2, 3, 
4, 35), b = c(3, 34, 5, 5), c = c(3, 37, 5, 5), d = c(38, 4, 
39, 5), e = c(3, 34, 5, 9), f = c(33, 4, 1, 9), g = c(3, 1, 5, 
9), h = c(3, 3, 35, 9), i = c(3, 17, 33, 9), j = c(3, 137, 3, 
9)), list(a = c(23, 3, 4, 85), b = c(3, 4, 53, 5), c = c(3, 7, 
5, 5), d = c(3, 4, 9, 5), e = c(3, 4, 5, 9), f = c(3, 34, 1, 
9), g = c(38, 1, 5, 9), h = c(3, 3, 5, 9), i = c(3, 137, 3, 9
), j = c(3, 17, 3, 9)), list(a = c(2, 3, 48, 5), b = c(3, 4, 
5, 53), c = c(3, 73, 53, 5), d = c(3, 43, 9, 5), e = c(33, 4, 
5, 9), f = c(33, 4, 13, 9), g = c(3, 81, 5, 9), h = c(3, 3, 5, 
9), i = c(3, 137, 3, 9), j = c(3, 173, 3, 9)))

我只想创建一个只有一个条目的列表。

所有人都希望将> mylist[[4]][[1]] [1] 23 3 4 85 的所有条目放入新列表的第一位置:mylist[[i]][[1]]将由mynewlist[[1]][[1]]mylist[[1]][[1]],{{1}填充},mylist[[2]][[1]]mylist[[3]][[1]]元素。

mynewlist(mylist[[4]][[1]])的secon位置将是:mylist[[5]][[1]]mynewlist[[2]][[1]]mylist[[1]][[2]]mylist[[2]][[2]]mylist[[3]][[2]]元素。

直到

mynewlist(mylist[[4]][[2]])的合适位置将是:mylist[[5]][[2]]个元素。

换句话说,我想将每个mynewlist[[5]][[1]]放在mylist[[1]][[5]],mylist[[2]][[5]],mylist[[3]][[5]],mylist[[4]][[5]],mylist[[5]][[5]]位置; mylist[[i]][[1]]$amynewlist[[1]][[1]]的位置,依此类推,直到mylist[[i]][[1]]$bmynewlist[[1]][[2]]的{​​{1}}]

这应该是我对mylist[[i]][[1]]$j的第一位置的输出:

mynewlist[[1]][[10

有帮助吗?

1 个答案:

答案 0 :(得分:0)

我们可以使用transpose

library(dplyr)
out <- mylist %>% 
           purrr::transpose(.)
out[[1]]
#[[1]]
#[1] 2 3 4 5

#[[2]]
#[1]  2  5 48  4

#[[3]]
#[1]  2  3  4 35

#[[4]]
#[1] 23  3  4 85

#[[5]]
#[1]  2  3 48  5