Sortieren Sie eine Matrix basierend auf einer anderen Matrix
Ich versuche, die Zeilen einer Matrix in der gleichen Reihenfolge wie die Zeilen einer anderen Matrix der gleichen Dimension zu platzieren. Allerdings kann ich ohne explizite Schleife nicht ganz herausfinden, wie das geht. Es scheint, dass ich dies mit einer Teilmenge und einer Anwenden- oder Zuordnungsfunktion tun sollte, aber ich kann nicht herausfinden, wie es geht.
Hier ist ein Spielzeugbeispiel:
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]]
}
Mit dieser Methode wird das resultierendesorted
Matrix enthält die Werte vonsortMe
sortiert in der gleichen Reihenfolge wie diesortBy
Matrix. Irgendeine Idee, wie ich das ohne die Schleife machen würde?