我有一个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 循环之外时,我没有收到错误消息。是否有一个原因?