r - 在 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
推荐阅读
- vivado - Vivado 中的仿真目录
- php - 使用 .htaccess 文件重定向我的页面时,我的会话不会在更改的页面之间移动
- matplotlib - 声明后如何关闭cartopy中的网格线?
- google-chrome - 如何从背景获取框架 ID 到内容脚本?
- makefile - 在 Makefile 中使用 `-include` 有什么实际理由吗?
- php - 在 WooCommerce 3.6 中向单个产品附加信息表添加行
- vuejs2 - 如何使用 Vue.axios.delete() 删除数据
- unit-testing - 测试 Spark:如何为每个测试创建一个干净的环境
- r - 在创建 SpatialPointDataFrame 时忽略行,其中 rasterstack 的任何栅格层的单个像素值为 NA
- automation - cypress.visit 正在重定向到后缀为 __/ 的同一域