假设我有一个整数向量 1:6
w=1:6
我试图获得一个 90 行和 6 列的矩阵,其中包含来自这 6 个整数的多项组合,这些整数被视为 3 个大小为 2 的组。
6!/(2!*2!*2!)=90
因此,矩阵的第 1 列和第 2 列代表第 1 组,第 3 列和第 4 列代表第 2 组,第 5 列和第 6 列代表第 3 组。类似于:
1 2 3 4 5 6
1 2 3 5 4 6
1 2 3 6 4 5
1 2 4 5 3 6
1 2 4 6 3 5
...
最终,我想将其扩展到其他有限大小的多项式组合(因为数字变得相当快),但我无法让事情正常工作。我发现了几个执行二项式组合的函数(只有 2 个组),但是当组数大于 2 时,我找不到任何执行此操作的函数。
我尝试了两种方法:
使用 for 循环从无到有构建矩阵并尝试使用 reshape 包进行操作(认为使用 melt() 可能会有所帮助)
通过尝试保留组内的唯一行或删除组内的重复行,从排列矩阵(720 行)向后工作
都不适合我。
置换矩阵可以得到
library(gtools)
dat=permutations(6, 6, set=TRUE, repeats.allowed=FALSE)
我认为从完整的排列矩阵向后工作有点过分,但我现在正在尝试任何事情。
有没有为此预建功能的包?有人对我应该如何进行有任何想法吗?