3

我有一个1000 x 3整数组合矩阵1:10(例如,每列是一个从 1 到 10 的索引,我想查看索引的组合)。我想获得导致部分行总和满足某些条件的组合的行索引。

cvec = c(14,15)
L   <- 3
vec <- seq(10)
lst <- lapply(numeric(L), function(x) vec)
mat = as.matrix(expand.grid(lst))

partial = NULL
for (k in seq(L-1)){
  for (r in seq(L-k+1)){
    partial = c(which(rowSums(mat[,r:(r+k-1)])<=cvec[k]),partial)
  }
}

我不断收到以下错误:

 Error in rowSums(mat[, r:(r + k - 1)]) : 
  'x' must be an array of at least two dimensions 

但是,当我运行which(rowSums(mat[,r:(r+k-1)])<=cvec[k])甚至只是rowSums(mat[,r:(r+k-1)])在 for 循环之外时,我没有收到错误消息。是否有一个原因?

4

0 回答 0