我有一个矩阵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
)。
我很抱歉,如果以前有人问过这个问题。
尝试
H[cbind(seq_len(nrow(H)), P)]
## [1] 0.6733731 0.7396847 0.5953580
在这里,我们通过指示的连续行和列进行索引 P
关于您的问题,所以H[, P]
返回一个矩阵的原因是因为您告诉R:
从矩阵“ H”中选择列中的所有行:2、1、2
因此,您得到的结果是一个具有相同的第一列和第三列的矩阵。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句