整数总和为R中的给定数字

时间:2014-05-26 14:11:08

标签: r combinatorics

我希望在R中创建一个包含m列的矩阵,这样每行的元素都是非负整数,它们与给定的n相加。必须有多少行,因为有方法可以进行安排。我只能想到一些复杂的方法来做到这一点,所以在开始重新发明轮子之前,我想知道:有几种神奇的方法可以在几行中做到这一点吗?

1 个答案:

答案 0 :(得分:0)

根据Llopis评论,我想出了以下功能:

eq_sum <- function(m,n){
  comb <- expand.grid(replicate(m, 0:n, simplify=FALSE))
  delete <- seq(nrow(comb))*(rowSums(comb)!=n)
  comb[-delete,]
}

我认为它不是最有效的,因为它计算所有组合,最后只需要一个小子集。但是,它应该足以满足我的目的。