R 中的组合学
Combinatorics in R
我有 4 个项目,其中 3 个可以达到峰值 random.But 我如何在 R 中计算总组合?
我认为可能是:
sample(4,3)
for one sample.But 每次都运行 sample function 如果结果相同或包含在前面的结果中则排除并再次运行 直到所有出现可能的组合。
但是如何在 R 中做到这一点?
您可以使用combn
得到所有可能的组合:
combn(4, 3)
[,1] [,2] [,3] [,4]
[1,] 1 1 1 2
[2,] 2 2 3 3
[3,] 3 4 4 4
对于排列,您可以使用,例如,gtools::permutations
:
gtools::permutations(4, 3)
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 1 2 4
[3,] 1 3 2
[4,] 1 3 4
[5,] 1 4 2
[6,] 1 4 3
[7,] 2 1 3
[8,] 2 1 4
[9,] 2 3 1
[10,] 2 3 4
[11,] 2 4 1
[12,] 2 4 3
[13,] 3 1 2
[14,] 3 1 4
[15,] 3 2 1
[16,] 3 2 4
[17,] 3 4 1
[18,] 3 4 2
[19,] 4 1 2
[20,] 4 1 3
[21,] 4 2 1
[22,] 4 2 3
[23,] 4 3 1
[24,] 4 3 2
我有 4 个项目,其中 3 个可以达到峰值 random.But 我如何在 R 中计算总组合?
我认为可能是:
sample(4,3)
for one sample.But 每次都运行 sample function 如果结果相同或包含在前面的结果中则排除并再次运行 直到所有出现可能的组合。
但是如何在 R 中做到这一点?
您可以使用combn
得到所有可能的组合:
combn(4, 3)
[,1] [,2] [,3] [,4]
[1,] 1 1 1 2
[2,] 2 2 3 3
[3,] 3 4 4 4
对于排列,您可以使用,例如,gtools::permutations
:
gtools::permutations(4, 3)
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 1 2 4
[3,] 1 3 2
[4,] 1 3 4
[5,] 1 4 2
[6,] 1 4 3
[7,] 2 1 3
[8,] 2 1 4
[9,] 2 3 1
[10,] 2 3 4
[11,] 2 4 1
[12,] 2 4 3
[13,] 3 1 2
[14,] 3 1 4
[15,] 3 2 1
[16,] 3 2 4
[17,] 3 4 1
[18,] 3 4 2
[19,] 4 1 2
[20,] 4 1 3
[21,] 4 2 1
[22,] 4 2 3
[23,] 4 3 1
[24,] 4 3 2