首页 > 解决方案 > 对的排列列表

问题描述

我敢肯定,对你们中的许多人来说,这很容易,这将节省我的时间:我需要生成一个包含所有数字序列对的排列集。例如,对于 1:6,它将给出 30 个子集作为最终结果,即 n(n-1) :

(1,2),(3,4),(5,6)
...
(1,6),(2,3),(4,5)

我需要成对,而不是成对,因此 (3,4) 和 (4,3) 是独一无二的一对。

combn(1:6,2)给了我一个以我的配对作为列的表格,但是我如何从中生成我的配对列表?

combn(1:6,2)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15]
[1,]    1    1    1    1    1    2    2    2    2     3     3     3     4     4     5
[2,]    2    3    4    5    6    3    4    5    6     4     5     6     5     6     6

谢谢

标签: rpermutationcombinatorics

解决方案


我们可以设置参数simplify = FALSEcombn使其返回一个列表:

combn(1:6, 2, simplify = FALSE)
#[[1]]
#[1] 1 2
#
#[[2]]
#[1] 1 3
#
#[[3]]
#[1] 1 4
#
#[[4]]
#[1] 1 5
#...

推荐阅读