Ich habe drei Faktoren/Matrizen (NFA, RX und LDC). Zuerst möchte ich jede Zeile in NFA aufsteigend und RX sollte auf die gleiche Weise wie NFA bestellt werden. Das funktioniert. Aber dann möchte ich den Faktor NFA in zwei Gruppen (G1 und G2) trennen. Beide Gruppen sollten nach dem Schema des dritten LDC-Faktors neu bestellt werden (separat). Mein Code gibt mir eine falsche Sortierung, aber ich weiß nicht warum.Bestellung von zwei Matrizen nach einer dritten Matrix (mit% in%)
Daten
NFA<-matrix(c(4,9,5,3,1,7, 12,51,15,6,9,3, 9,5,1,11,3,8, 5,9,7,18,21,17),4,6,byrow=TRUE) RX<-matrix(c(1,3,7,1,5,4, 6,12,3,8,3,5, 4,4,5,34,8,2, 5,7,11,5,13,17),4,6,byrow=TRUE) LDC<-matrix(c(7,1,5,9,4,3, 12,51,6,3,9,15, 8,3,11,1,5,9, 9,5,7,18,17,21),4,6,byrow=TRUE) columns <- ncol(NFA)
Erste Sortierung:
C<-t(apply(NFA, 1, order)) NFA.neu <- matrix(NFA[cbind(c(row(NFA)), c(C))], ,columns) RX.neu <- matrix(RX[cbind(c(row(NFA)), c(C))], ,columns)
jede Gruppe nach dem Schema von LDC Bestellung
G1 <- 1:(columns/2); G2 <- (1+columns/2):columns
for (i in 1:nrow(LDC)) {
nfa <- NFA.neu[i,]; ldc <- LDC[i,]
o1 <- order(ldc[nfa %in% ldc[G1]])
o2 <- order(ldc[nfa %in% ldc[G2]]) + columns/2
o<-c(o1, o2)
NFA.neu[i,]<- NFA.neu[i, o]
RX.neu[i,]<- RX.neu[i, o]
}
Das Problem ist, dass in Gruppe 1 und Gruppe 2 ich die falsche Reihenfolge haben.
sollte die richtige Lösung wie folgt aussehen:
Solution<-matrix(c(1,4,3,7,5,9, 6,3,9,12,51,15, 3,1,5,8,11,9, 9,5,7,18,17,21),4,6,byrow=T)
Vielleicht einen Tipp für mich hat jemand? Ich weiß nicht, wo mein Fehler ist.
Vielen Dank im Voraus,
Jordan
ich nicht ganz verstehe Ihr Problem und Ihre Lösung Datenrahmen
Jordan ist aber eine ähnliche C-Matrix pro Gruppe mit Bestellung erhalten mit einem Ansatz wie folgt: 'apply (LDC, 1, Funktion (x, y) Ordnung (y, x), c (rep (1,3), rep (2,3))). Sie fügen ('rbind') eine Gruppierungszeile hinzu und sortieren nach dieser und der Zielzeile. – Jimbou
Danke für Ihren Hinweis. Mein Hauptproblem ist die Reihenfolge in o1 und o2 in meinem Code. Hier möchte ich nach der Sequenz in LDC jede Zeile der Matrix "NFA.neu" bestellen. Aber meine Sortierung ist nicht in der Reihenfolge der LDC und ich weiß nicht warum. – Jordan
OK, aber sind Sie sicher, dass die von Ihnen bereitgestellte "Solution" -Matrix korrekt ist? – Jimbou