生成所有可能的元素组合的矩阵以获得给定的行和值

时间:2016-12-02 15:10:35

标签: r combinations

我想生成一个包含固定元素的3个元素的所有组合的矩阵,以获得给定的行和值n。结果采用此n=6格式,其中固定列V4的值等于1:

  V1  V2  V3  V4
   5   0   0   1
   0   5   0   1
   0   0   5   1
   4   1   0   1
   4   0   1   1
   3   2   0   1
   3   0   2   1
   2   3   1   1
   2   1   3   1
   1   2   2   1
   .   .   .   1
   .   .   .   1
   .   .   .   .
   .   .   .   .

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

使用expand.grid

 N = 6
 combVec=expand.grid(0:N,0:N,0:N,rep(1,(N+1)))

 subVec = combVec[rowSums(combVec)==N,]
 rownames(subVec) = NULL

 head(subVec)

 #  Var1 Var2 Var3 Var4
 #1    5    0    0    1
 #2    4    1    0    1
 #3    3    2    0    1
 #4    2    3    0    1
 #5    1    4    0    1
 #6    0    5    0    1