Um zu verstehen, wie man Datenrahmen in R
richtig sortiert, müssen wir natürlich zuerst einen Datenrahmen generieren, um ihn zu manipulieren.
Hinweis: Der Abstand ist nicht notwendig, verbessert aber die Lesbarkeit.,
Ausführen unseres run.R
Skripts gibt die Liste der Vektoren in unserem Datenrahmen erwartungsgemäß in der Reihenfolge aus, in der sie eingegeben wurden:
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1
Die Bestellfunktion
Ist zwar möglicherweise nicht die einfachste Sortiermethode, die syntaxbedingt am einfachsten für alle Installationen von R
ist die Funktionorder
, da sie Teil des Modulsbase
.,
Die Funktion order
akzeptiert eine Reihe von Argumenten, aber auf der einfachsten Ebene muss das erste Argument eine Folge von Werten oder logischen Vektoren sein.,
Zum Beispiel können wir verwenden, um einfach einen Vektor von fünf zufällig geordneten Zahlen mit diesem Skript zu sortieren:
# Create unordered vectorvector = c(2, 5, 1, 3, 4)# Print vectorvector# Sort in ascending ordervector
Wenn wir das Skript ausführen, sehen wir die anfängliche Ausgabe des ungeordneten Vektors, gefolgt von der jetzt geordneten Liste danach:
$ Rscript run.R 2 5 1 3 4 1 2 3 4 5
Sortieren eines Datenrahmens nach Vektornamen
Mit der Funktion order()
In unserem Toolkit beginnen wir mit der Sortierung unseres Datenrahmens, indem wir die Vektornamen innerhalb des Datenrahmens übergeben.,
Mit unserem zuvor generierten dataframe
– Objekt können wir beispielsweise nach dem Vektor z
sortieren, indem wir unserem Skript den folgenden Code hinzufügen:
# Sort by vector name dataframe
Was wir effektiv tun, ist unser ursprüngliches dataframe
Objekt und Übergabe der neuen Indexreihenfolge, die wir haben möchten., Diese Indexreihenfolge wird mit der with()
– Funktion generiert, die effektiv eine neue Umgebung erstellt, in der die übergebenen Daten im ersten Argument zusammen mit einem Ausdruck zum Auswerten dieser Daten im zweiten Argument verwendet werden.
Daher bewerten wir die dataframe
– Daten mithilfe der – Funktion neu und möchten basierend auf dem z
– Vektor innerhalb dieses Datenrahmens bestellen., Dies liefert eine neue Reihenfolge der Indizes für die Daten-frame-Werte, die dann schließlich ausgewertet innerhalb von dataframe
, Ausgabe unseres neuen bestellt Ergebnis.
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1 x y z4 strawberry c 13 banana b 22 orange d 31 apple a 4
Folglich sehen wir unsere ursprüngliche ungeordnete Ausgabe, gefolgt von einer zweiten Ausgabe mit den Daten sortiert nach Spalte z
.
Sortierung nach Spaltenindex
Ähnlich wie bei der obigen Methode ist es auch möglich, basierend auf der numerischen index
einer Spalte im Datenrahmen anstelle des spezifischen Namens zu sortieren.,
Anstatt die Funktion with()
zu verwenden, können wir einfach die Funktion order()
an unsere Funktion dataframe
übergeben. Wir geben an, dass wir nach der Spalte index 1
sortieren möchten, indem wir die Syntax dataframe
verwenden, wodurch R
die Ebenen (Namen) dieses Index 1
zurückgibt., Mit anderen Worten, ähnlich wie bei der Übergabe des obigen z
– Vektornamens wird order
basierend auf den Vektorwerten sortiert, die sich in der Indexspalte befinden 1
:
dataframe ),]
Wie erwartet erhalten wir unseren normalen Vektornamen.ausgabe gefolgt von der sortierten Ausgabe in der ersten Spalte:
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1 x y z1 apple a 43 banana b 22 orange d 34 strawberry c 1
Sortierung nach mehreren Spalten
In einigen Fällen kann es erwünscht sein, nach mehreren Spalten zu sortieren. Zum Glück ist dies mit den zuvor beschriebenen Methoden sehr einfach.,
Um mehrere Spalten mithilfe von Vektornamen zu sortieren, fügen Sie dem Funktionsaufruf wie zuvor zusätzliche Argumente hinzu:
# Sort by vector name then dataframe
Um nach mehreren Spalten basierend auf dem Spaltenindex zu sortieren, fügen Sie mit unterschiedlichen Indizes hinzu:
# Sort by column index then dataframe, dataframe ),]
Schreibe einen Kommentar