在 R 中打印无重复的组合
Printing Combinations without Repeats in R
我想在 R 中得到以下打印输出:
1,2,3
1,2,4
1,3,4
2,1,3
2,1,4
2,3,4
3,1,2
3,1,4
3,2,4
4,1,2
4,1,3
4,2,3
大致如下:
for (main in 1:4){
for (i in 1:4) {
if (i != main){
for (j in 1:4){
if (j != main & j != i){print main,i,j}}}}}
我想将以上 12 个结果放在一个向量中。谢谢你。
如评论中所述,这是排列和组合之间的奇怪组合。这里有一个可能的解决方案:
Reduce(rbind,
lapply(1:4, function(i){
t(rbind(i, combn((1:4)[-i], 2)))
})
)
#> i
#> [1,] 1 2 3
#> [2,] 1 2 4
#> [3,] 1 3 4
#> [4,] 2 1 3
#> [5,] 2 1 4
#> [6,] 2 3 4
#> [7,] 3 1 2
#> [8,] 3 1 4
#> [9,] 3 2 4
#> [10,] 4 1 2
#> [11,] 4 1 3
#> [12,] 4 2 3
我想在 R 中得到以下打印输出:
1,2,3
1,2,4
1,3,4
2,1,3
2,1,4
2,3,4
3,1,2
3,1,4
3,2,4
4,1,2
4,1,3
4,2,3
大致如下:
for (main in 1:4){
for (i in 1:4) {
if (i != main){
for (j in 1:4){
if (j != main & j != i){print main,i,j}}}}}
我想将以上 12 个结果放在一个向量中。谢谢你。
如评论中所述,这是排列和组合之间的奇怪组合。这里有一个可能的解决方案:
Reduce(rbind,
lapply(1:4, function(i){
t(rbind(i, combn((1:4)[-i], 2)))
})
)
#> i
#> [1,] 1 2 3
#> [2,] 1 2 4
#> [3,] 1 3 4
#> [4,] 2 1 3
#> [5,] 2 1 4
#> [6,] 2 3 4
#> [7,] 3 1 2
#> [8,] 3 1 4
#> [9,] 3 2 4
#> [10,] 4 1 2
#> [11,] 4 1 3
#> [12,] 4 2 3