gpt4 book ai didi

r - 根据另一个矩阵对一个矩阵进行排序

转载 作者:行者123 更新时间:2023-12-04 09:10:59 25 4
gpt4 key购买 nike

我试图将一个矩阵的行与相同维度的另一个矩阵的行按相同的顺序排列。但是,如果没有显式循环,我无法弄清楚如何做到这一点。似乎我应该能够通过子集和应用或 Map 函数来做到这一点,但我不知道如何做到这一点。

这是一个玩具示例:

sortMe <- matrix(rnorm(6), ncol=2)
sortBy <- matrix(c(2,1,3, 1,3,2), ncol=2)

sorted <- sortMe
for (i in 1:ncol(sortMe)) {
sorted[,i] <- sortMe[,i][sortBy[,i]]
}

使用这种方法,得到的 sorted矩阵包含来自 sortMe 的值以与 sortBy 相同的顺序排序矩阵。知道如何在没有循环的情况下做到这一点吗?

最佳答案

这(使用两列整数矩阵来索引矩阵的二维)应该可以解决问题:

sorted <- sortMe
sorted[] <- sortMe[cbind(as.vector(sortBy), as.vector(col(sortBy)))]

关于r - 根据另一个矩阵对一个矩阵进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11108713/

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