gpt4 book ai didi

r - 根据列向量对矩阵进行子集

转载 作者:行者123 更新时间:2023-12-04 11:09:26 24 4
gpt4 key购买 nike

我有一个矩阵 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:

select all rows in columns: 2, 1, 2 from matrix "H"



因此,您得到的结果是具有相同第一列和第三列的矩阵。

关于r - 根据列向量对矩阵进行子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27023819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com