考虑下图中的公式,其中j和n是固定的整数。很明显,n不能很大。我正在考虑使用n = 10。关键特征是从n中找出所有不同的j管(i_1 <...&lt; i_j)。有没有一种简单的方法可以在R
中实现这一目标,好吗?有人可以帮帮我吗?
答案 0 :(得分:3)
这只是combinations,从j
选择n
而不考虑订单。当然,将组合元素映射到 i 1 ... i j 将需要对它们进行排序(为了满足约束 i 1 &lt; ...&lt; i j ),但这实际上是怎样的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()
即可将其更改为每行。