【发布时间】:2015-01-17 09:11:25
【问题描述】:
我有一个矩阵 H。我想从每一行中选择一个值,从向量 P 中选择列。
H = matrix(data=runif(6),ncol=2)
P = c(2,1,2)
我所追求的输出是一个包含
的向量c(H[1,P[1]],H[2,P[2]],H[3,P[3]])
我正在处理更大的数据,因此采用通用方法会很好。
这工作 diag(H[,P]),但是:a) 我不明白为什么 H[,P] 返回一个方阵,并且 b) 我宁愿不使用额外的函数(在这种情况下是 diag)。
如果之前有人问过这个问题,我深表歉意。
【问题讨论】:
-
diag(H[,P])有效,因为它在调用diag之前将列添加到 P 的长度,这在大型矩阵上效率会降低。下面大卫的回答非常好。