我有来自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)])
时,我不会收到错误消息。这是有原因的吗?