假设您有一个 5x5 矩阵,并希望使用两个等长向量来选择值,一个代表索引行,另一个代表索引列:
m <- matrix(1:25, ncol = 5)
R <- c(1, 3, 5)
C <- c(2, 4, 4)
此处所需的输出是 6
(第 1 行第 2 列)、18
(第 3 行第 4 列)、20< 的单个向量
(第 5 行,第 4 列)。
我能想到的最好的是:
diag(m[R,C])
但是这会构造一个大小为 length(R) * length(C)
的矩阵,因此如果 R 和 C 很长,就会很慢。
你是怎么做到的?
最佳答案
您可以使用 cbind(R, C)
与 [
:
m[cbind(R,C)]
#> [1] 6 18 20
关于r - 使用两个等长向量为行和列索引索引矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60890372/