对的排列列表
permutation list of pairs
我敢肯定,这对你们中的许多人来说很简单,这将节省我的时间:
我需要生成一个数字序列的所有对的排列集。例如,对于 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)
给我一个 table 以我的对作为列,但我如何从中生成我的对列表?
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
谢谢
我们可以在 combn
中设置参数 simplify = FALSE
使其 returns 一个列表:
combn(1:6, 2, simplify = FALSE)
#[[1]]
#[1] 1 2
#
#[[2]]
#[1] 1 3
#
#[[3]]
#[1] 1 4
#
#[[4]]
#[1] 1 5
#...
以相反的顺序重复您的步骤 rbind
。例如,现在 c(3,4)
和 c(4,3)
都包含在内。我正在使用 t
进行转置,这样可以更轻松地查看数据。
rbind( t(combn(1:6,2)), t(combn(6:1,2)) )
[,1] [,2]
[1,] 1 2
[2,] 1 3
[3,] 1 4
[4,] 1 5
[5,] 1 6
[6,] 2 3
[7,] 2 4
[8,] 2 5
[9,] 2 6
[10,] 3 4
[11,] 3 5
[12,] 3 6
[13,] 4 5
[14,] 4 6
[15,] 5 6
[16,] 6 5
[17,] 6 4
[18,] 6 3
[19,] 6 2
[20,] 6 1
[21,] 5 4
[22,] 5 3
[23,] 5 2
[24,] 5 1
[25,] 4 3
[26,] 4 2
[27,] 4 1
[28,] 3 2
[29,] 3 1
[30,] 2 1
我敢肯定,这对你们中的许多人来说很简单,这将节省我的时间: 我需要生成一个数字序列的所有对的排列集。例如,对于 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)
给我一个 table 以我的对作为列,但我如何从中生成我的对列表?
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
谢谢
我们可以在 combn
中设置参数 simplify = FALSE
使其 returns 一个列表:
combn(1:6, 2, simplify = FALSE)
#[[1]]
#[1] 1 2
#
#[[2]]
#[1] 1 3
#
#[[3]]
#[1] 1 4
#
#[[4]]
#[1] 1 5
#...
以相反的顺序重复您的步骤 rbind
。例如,现在 c(3,4)
和 c(4,3)
都包含在内。我正在使用 t
进行转置,这样可以更轻松地查看数据。
rbind( t(combn(1:6,2)), t(combn(6:1,2)) )
[,1] [,2]
[1,] 1 2
[2,] 1 3
[3,] 1 4
[4,] 1 5
[5,] 1 6
[6,] 2 3
[7,] 2 4
[8,] 2 5
[9,] 2 6
[10,] 3 4
[11,] 3 5
[12,] 3 6
[13,] 4 5
[14,] 4 6
[15,] 5 6
[16,] 6 5
[17,] 6 4
[18,] 6 3
[19,] 6 2
[20,] 6 1
[21,] 5 4
[22,] 5 3
[23,] 5 2
[24,] 5 1
[25,] 4 3
[26,] 4 2
[27,] 4 1
[28,] 3 2
[29,] 3 1
[30,] 2 1