R - 用矩阵重塑列表

问题描述 投票:0回答:1

我正在处理根据

combn
的输出创建的矩阵列表。看起来像这样:

[[1]]
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] "A"  "A"  "A"  "A"  "B"  "B"  "B"  "C"  "C"  "D"  
[2,] "B"  "C"  "D"  "E"  "C"  "D"  "E"  "D"  "E"  "E"  

[[2]]
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] "A"  "A"  "A"  "A"  "A"  "A"  "B"  "B"  "B"  "C"  
[2,] "B"  "B"  "B"  "C"  "C"  "D"  "C"  "C"  "D"  "D"  
[3,] "C"  "D"  "E"  "D"  "E"  "E"  "D"  "E"  "E"  "E"  

[[3]]
     [,1] [,2] [,3] [,4] [,5]
[1,] "A"  "A"  "A"  "A"  "B" 
[2,] "B"  "B"  "B"  "C"  "C" 
[3,] "C"  "C"  "D"  "D"  "D" 
[4,] "D"  "E"  "E"  "E"  "E" 

[[4]]
     [,1]
[1,] "A" 
[2,] "B" 
[3,] "C" 
[4,] "D" 
[5,] "E" 

但是,我想“展平”这个列表,根据它们的列重塑内部矩阵。

结果将是一个 26 元素列表,如下所示:

[[1]]
"A" "B"

[[2]]
"A" "C"

[[3]]
"A" "D"

[[4]]
"A" "E"

[[5]]
"B" "C"

[[6]]
"B" "D"

[[7]]
"B" "E"
.
.
.

[[21]]
"A" "B" "C" "D"

[[22]]
"A" "B" "C" "E"

[[23]]
"A" "B" "D" "E"

[[24]]
"A" "C" "D" "E"

[[25]]
"B" "C" "D" "E"

[[26]]
"A" "B" "C" "D" "E"

我怎样才能实现这一目标?

r matrix reshape
1个回答
2
投票
unlist(Map(combn, list(LETTERS[1:5]), 2:5, simplify = FALSE), FALSE)

[[1]]
[1] "A" "B"

[[2]]
[1] "A" "C"

[[3]]
[1] "A" "D"

[[4]]
[1] "A" "E"

[[5]]
[1] "B" "C"

[[6]]
[1] "B" "D"

[[7]]
[1] "B" "E"

[[8]]
[1] "C" "D"

[[9]]
[1] "C" "E"

[[10]]
[1] "D" "E"

[[11]]
[1] "A" "B" "C"

[[12]]
[1] "A" "B" "D"

[[13]]
[1] "A" "B" "E"

[[14]]
[1] "A" "C" "D"

[[15]]
[1] "A" "C" "E"

[[16]]
[1] "A" "D" "E"

[[17]]
[1] "B" "C" "D"

[[18]]
[1] "B" "C" "E"

[[19]]
[1] "B" "D" "E"

[[20]]
[1] "C" "D" "E"

[[21]]
[1] "A" "B" "C" "D"

[[22]]
[1] "A" "B" "C" "E"

[[23]]
[1] "A" "B" "D" "E"

[[24]]
[1] "A" "C" "D" "E"

[[25]]
[1] "B" "C" "D" "E"

[[26]]
[1] "A" "B" "C" "D" "E"
© www.soinside.com 2019 - 2024. All rights reserved.