【发布时间】:2020-07-08 10:48:25
【问题描述】:
假设您有一个 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 很长,则速度会很慢。
你是怎么做到的?
【问题讨论】:
-
我尝试了几种不同的
apply解决方案,而您使用diag的解决方案要快得多