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 

ただし、 for ループを実行しwhich(rowSums(mat[,r:(r+k-1)])<=cvec[k])たりrowSums(mat[,r:(r+k-1)])、 for ループのすぐ外側で実行したりしても、エラーは発生しません。これには理由がありますか?

4

0 に答える 0