我正在使用从combn:lapply(2:length(c("A","B","C","D","E")), function(n) combn(c("A","B","C","D","E"), n, simplify = TRUE))的输出创建的矩数组表

它看起来是这样的:

[[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" 

然而,我想"扁平化"这个列表,根据它们的列reshape 内部矩阵.

结果将是一个包含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"

我怎样才能做到这一点呢?

推荐答案

unlist(Map(combn, list(LETTERS[1:5]), 2:5, simplify = FALSE), FALSE)

unlist(lapply(2:5, combn, x = LETTERS[1:5], simplify = FALSE), FALSE)

如果您已经有了问题中所示的结果,您可以使用asplit:

res <- lapply(2:5, combn, x = LETTERS[1:5]) # as shown in the question
do.call(c, lapply(res, asplit, 2))

[[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"

R相关问答推荐

多个ggpredicate对象的平均值

使用spatVector裁剪网格数据时出现的问题

根据R中两个变量的两个条件删除带有dspirr的行

R Tidymodels textercipes-使用spacyR进行标记化-如何从生成的标记列表中删除标点符号

如何计算前一行的值,直到达到标准?

R中的子集文件—读取文件名索引为4位数字序列,例如0001到4000,而不是1到4000)

用黄土法确定区间

为什么横向页面会导致officeverse中的页码/节头/页脚出现问题?

用值序列对行进行子集化,并标识序列开始的列

如何将旋转后的NetCDF转换回正常的纬度/经度网格,并使用R?

标识R中多个列中缺少的唯一值

如何对2个列表元素的所有组合进行操作?

从一个列表的框架中移除列表包装器

有没有办法将不等长的列表转换为R中的数据帧

按组和连续id计算日期差

R-使用stri_trans_General()将其音译为德语字母

替换在以前工作的代码中有x行&q;错误(geom_sf/gganimate/dow_mark)

在不重复主题的情况下重新排列组

重写时间间隔模糊连接以减少内存消耗

如何计算物种矩阵中一行中的唯一个数?