我希望在R中创建一个包含m列的矩阵,这样每行的元素都是非负整数,它们与给定的n相加。必须有多少行,因为有方法可以进行安排。我只能想到一些复杂的方法来做到这一点,所以在开始重新发明轮子之前,我想知道:有几种神奇的方法可以在几行中做到这一点吗?
答案 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,]
}
我认为它不是最有效的,因为它计算所有组合,最后只需要一个小子集。但是,它应该足以满足我的目的。