Das folgende R-Skript erstellt einen Datenrahmen a123 mit drei Spalten. Spalte a1 hat drei Variablen, die an verschiedenen Stellen mit entsprechenden a2- und a3-Werten auftreten.Sortieren einer Spalte in der Reihenfolge einer anderen Spalte in R
a1 = c("A", "B", "C", "A", "B", "B", "A", "C", "A", "C", "B")
a2 = c(10, 8, 11 , 6 , 4 , 7 , 9 , 1 , 3 , 2, 7)
a3 = c(55, 34, 33, 23, 78, 33, 123, 34, 85, 76, 74)
a123 = data.frame(a1, a2, a3)
Mein Bedürfnis ist, dass ich A3 Spaltenwerte entsprechend a1 Spaltenwert will in aufsteigender Reihenfolge angeordnet werden, basierend auf der Reihenfolge von a2 Werten. Wenn gemeinsame a2-Werte auftreten, sollten die entsprechenden a3-Spaltenwerte in aufsteigender Reihenfolge angeordnet sein. Zum Beispiel, sagen Wert "A" in Spalte a1 hat Werte in a2 und a3 folgenden,
a2 = c(10, 6, 9, 3)
a3 = c(55, 23, 123, 85)
Die Werte können wie:
a3 = c(123, 23, 85, 55)
Erwartete Ergebnisse:
a1 = c("A", "B", "C", "A", "B", "B", "A", "C", "A", "C", "B")
a2 = c(10, 8, 11, 6, 4, 7, 9, 1, 3, 2, 7)
a3 = c(123, 78, 76, 23, 33, 34, 85, 33, 55, 34, 74)
a123 = data.frame(a1, a2, a3)
Danke und bitte helfen. Hinweis: Versuchen Sie, Schleifen und Bedingungen zu vermeiden, da sie die Berechnung aufgrund großer Datenmengen verlangsamen können.
Meinten Sie '85 23 123 55' für Ihr Beispiel? Es ist mir nicht ganz klar, was deine Logik ist. – Psidom
Gestern haben Sie die gleiche Frage gestellt: https://stackoverflow.com/questions/48023937/sorting-the-values-of-column-in-ascending-order-in-r ... aber ehrlich gesagt haben Sie nicht besser die Wirksamkeit Ihrer Anfrage ... –
Schauen Sie sich die Funktionen tapply() und order() an. – user2554330