考虑下图中的公式,其中j和n是固定整数。很明显,n 不能很大。我正在考虑使用 n=10。关键特征是从 n 中找出所有不同的 j 管 (i_1 < ... < i_j)。请问在 R
中有没有一种简单的方法可以实现这一点?有人可以帮我吗?
最佳答案
这只是 combinations ,从 n
中选择 j
而不考虑顺序。当然,组合元素到i1…ij的映射需要对它们进行排序(为了满足约束 i1 < … <ij),但这实际上是 combn()
返回的方式默认结果:
jtubes <- function(j,n) combn(n,j);
jtubes(3,5);
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 1 1 1 1 1 1 2 2 2 3
## [2,] 2 2 2 3 3 4 3 3 4 4
## [3,] 3 4 5 4 5 5 4 5 5 5
combn()
将结果作为每列一个组合的矩阵返回,但您可以通过一次调用 t()
将其更改为每行。
关于r - 从 n 中选择 k 个不同且递增的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31828567/