/ / Sortierung einer großen Matrix in R - r, Sortierung, Matrix

Sortierung einer großen Matrix in R - r, Sortierung, Matrix

Ich habe eine sehr große quadratische Matrix. Ich würde gerne einen effektiven Weg finden, um ein paar "top" (kleinste oder größte) Werte aus der Matrix zu bekommen, aber die Zeilen / Spalten zu behalten. Mit einer kleineren Matrix könnte ich Folgendes tun:

m <- matrix(rnorm(100), ncol=10, nrow=10)
m <- cbind(as.vector(m), as.vector(col(m)), as.vector(row(m)))
head(m[ order(m[,1]), ])

Dies ist jedoch nicht praktikabel, wenn die Matrix sehr groß ist. Gibt es einen besseren, effizienteren Weg?

Antworten:

1 für die Antwort № 1

Sie müssen einen Datenrahmen mit Ihrer Matrix erstellen und dann nach Ihren Wünschen sortieren.

Dann ist der beste Weg, nicht zu sehen, wie Sie Ihre Matrix bestellen, aber was ist der beste Weg, um einen Datenrahmen zu erstellen und zu bestellen.

Verwenden des Pakets data.table Sie können einen Datenrahmen schnell und speichereffizient erstellen:

m <- data.table(as.vector(m), as.vector(col(m)), as.vector(row(m)))

Danach bestellen Sie Ihre Daten

m <- m[ order(m[,1]), ]