我想将一个巨大的向量与 R 中的矩阵中的选定元素进行比较。
A 是矩阵,B 是向量。我想将 B 的每个元素与 A 中的选定元素进行比较。C 和 D 是选择标准。它们是与 B 长度相同的向量。C 指定 A 的行号,D 指定列号。A 的维度为 10*100,B、C、D 都是长度为 72000 的向量。带有 for 循环的代码:
for ( j in 1:length(B) ){
E[j] <- B[j] >= A[ C[j], D[j] ]
}
这太慢了。我首先通过定义一个包含来自 A 的元素的向量来对其进行向量化:
A1 <- array(0, length(B))
A2 <- A[,D]
for ( j in 1:length(B) ){
A1[j] <- A2[ C[j], j ]
}
E <- B >= A1
这还是太慢了。有更好的方法吗?