R bietet verschiedene Möglichkeiten, die Daten entweder in aufsteigender oder absteigender Reihenfolge zu sortieren. Datenanalysten und Datenwissenschaftler verwenden order()
, sort()
und Pakete wie dplyr
, um Daten je nach Struktur der erhaltenen Daten zu sortieren.
order()
kann Vektoren, Matrizen und auch Datenrahmen in auf- und absteigender Reihenfolge sortieren, was im letzten Abschnitt dieses Tutorials gezeigt wird.
Syntax der order()
Die Syntax von order()
ist unten dargestellt:
order(x, decreasing = TRUE or FALSE, na.last = TRUE or FLASE, method = c("auto", "shell", "quick", "radix"))
Das Argument oben in order()
besagt, dass:
- x: Daten-Frames, Matrizen oder Vektoren
- decreasing: boolescher Wert; TRUE dann in absteigender Reihenfolge sortieren oder FALSE dann in aufsteigender Reihenfolge sortieren.
- na.last: boolescher Wert; TRUE dann werden NA-Indizes an letzter Stelle gesetzt oder FLASE DANN werden NA-Indizes an erster Stelle gesetzt.
- method: Sortiermethode, die verwendet werden soll.
order()
in R
Schauen wir uns ein Beispiel für order()
in Aktion an.
Der folgende Code enthält die Variable x
, die einen Vektor mit einer Liste von Zahlen enthält. Die Zahlen werden mit Hilfe von order(x)
nach ihrem Index geordnet.
y = c(4,12,6,7,2,9,5)
order(y)
Der obige Code ergibt die folgende Ausgabe:
5 1 7 3 4 6 2
Hier sortiert die order()
die angegebenen Zahlen nach ihrem Index in aufsteigender Reihenfolge. Da die Nummer 2 die kleinste ist, die einen Index von fünf hat, und die Nummer 4 den Index 1 hat, läuft der Prozess nach demselben Muster ab.
y = c(4,12,6,7,2,9,5)
y[order(y)]
Der obige Code ergibt die folgende Ausgabe:
2 4 5 6 7 9 12
Hier erfolgt die Indizierung der Reihenfolge, in der die aktuellen Werte in aufsteigender Reihenfolge gedruckt werden. Die Werte werden mit order()
nach dem Index geordnet und nach jedem Wert mit y[some-value]
aufgerufen.
Sortiervektor mit verschiedenen Parametern in order()
Schauen wir uns ein Beispiel an, bei dem die Datensätze den Wert als Symbol NA(Nicht verfügbar) enthalten.
order(x,na.last=TRUE)
x <- c(8,2,4,1,-4,NA,46,8,9,5,3)
order(x,na.last = TRUE)
Der obige Code ergibt die folgende Ausgabe:
5 4 2 11 3 10 1 8 9 7 6
Auch hier sortiert order()
die angegebene Liste von Zahlen nach ihrem Index in aufsteigender Reihenfolge. Da NA vorhanden ist, wird sein Index an letzter Stelle platziert, wobei 6 aufgrund von na.last=TRUE
an letzter Stelle steht.
order(x,na.last=FALSE)
order(x,na.last=FALSE)
Der obige Code ergibt die folgende Ausgabe:
6 5 4 2 11 3 10 1 8 9 7
Auch hier sortiert order()
die angegebene Liste von Zahlen nach ihrem Index in aufsteigender Reihenfolge. Da NA vorhanden ist, wird sein Index, der 6 ist, aufgrund von na.last=FALSE
an erster Stelle platziert.
order(x,decreasing=TRUE,na.last=TRUE)
order(x,decreasing=TRUE,na.last=TRUE)
Der obige Code ergibt die folgende Ausgabe:
7 9 1 8 10 3 11 2 4 5 6
Hier sortiert order()
eine gegebene Liste von Zahlen nach ihrem Index in absteigender Reihenfolge aufgrund von decreasing=TRUE
: 46. Der größte Wert steht bei Index 7 und die anderen Werte sind in absteigender Reihenfolge angeordnet. Da NA vorhanden ist, wird der Index 6 aufgrund von na.last=TRUE
an letzter Stelle platziert.
order(x,decreasing=FALSE,na.last=FALSE)
order(x,decreasing=FALSE,na.last=FALSE)
Der obige Code ergibt die folgende Ausgabe:
6 5 4 2 11 3 10 1 8 9 7
Hier steht NA, dessen Index 6 ist, wegen na.last=FALSE
an erster Stelle. order()
sortiert eine gegebene Liste von Zahlen nach ihrem Index in aufsteigender Reihenfolge wegen decreasing=FALSE
: Die kleinste Zahl -4 steht auf dem Index 5 und die anderen Werte werden aufsteigend sortiert.
R kostenlos lernen
Intermediate R
Sortieren eines Datenrahmens mit Hilfe von order()
Erstellen wir einen Datenrahmen, in dem der Bevölkerungswert 10 ist. Die Variable Geschlecht besteht aus den Vektorwerten "männlich" und "weiblich", wobei mit Hilfe von sample()
10 Stichprobenwerte ermittelt werden können, während replace = TRUE
nur die eindeutigen Werte erzeugt. Ebenso besteht das Alter aus Werten von 25 bis 75, zusammen mit einem Grad möglicher Werte wie c("MA", "ME", "BE", "BSCS"), die wiederum eindeutige Werte erzeugen.
Aufgabe: Sortieren der gegebenen Daten in aufsteigender Reihenfolge nach dem Alter der gegebenen Bevölkerung.
Hinweis: Die gezeigten Beispieldaten können abweichen, wenn du versuchst, sie auf deinem lokalen Rechner zu verwenden, da bei jeder Ausführung eines Codes ein einzigartiger Datenrahmen erstellt wird.
population = 10
gender=sample(c("male","female"),population,replace=TRUE)
age = sample(25:75, population, replace=TRUE)
degree = sample(c("MA","ME","BE","BSCS"), population, replace=TRUE)
(final.data = data.frame(gender=gender, age=age, degree=degree))
Geschlecht | Alter | Grad |
---|---|---|
männlich | 40 | MA |
weiblich | 57 | BSCS |
männlich | 66 | BE |
weiblich | 61 | BSCS |
weiblich | 48 | MA |
männlich | 25 | MA |
weiblich | 49 | BE |
männlich | 52 | ME |
weiblich | 57 | MA |
weiblich | 35 | MA |
Der obige Code ergibt die folgende Ausgabe, die einen neu erstellten Datenrahmen zeigt.
gender age degree
male 40 MA
female 57 BSCS
male 66 BE
female 61 BSCS
female 48 MA
male 25 MA
female 49 BE
male 52 ME
female 57 MA
female 35 MA
Lass uns den Datenrahmen in aufsteigender Reihenfolge sortieren, indem wir order()
basierend auf der Variable Alter verwenden.
order(final.data$age)
Der obige Code ergibt die folgende Ausgabe:
6 10 3 9 5 8 4 2 7 1
Da das Alter 25 bei Index 6 liegt, gefolgt vom Alter 35 bei Index 10 und ähnlich, werden alle altersbezogenen Werte in aufsteigender Reihenfolge angeordnet.
Der folgende Code enthält die []
Reihenfolge mit der Variable Alter, wird verwendet, um in aufsteigender Reihenfolge zu ordnen, wobei das Geschlecht zusammen mit den Abschlussinformationen ebenfalls ausgegeben wird.
final.data[order(final.data$age),]
Geschlecht | Alter | Grad | |
---|---|---|---|
6 | männlich | 25 | MA |
10 | weiblich | 35 | MA |
1 | männlich | 40 | MA |
5 | weiblich | 48 | MA |
7 | weiblich | 49 | BE |
8 | männlich | 52 | ME |
2 | weiblich | 57 | BSCS |
9 | weiblich | 57 | MA |
4 | weiblich | 61 | BSCS |
3 | männlich | 66 | BE |
Der obige Code ergibt die folgende Ausgabe:
gender age degree
6 male 25 MA
10 female 35 MA
1 male 40 MA
5 female 48 MA
7 female 49 BE
8 male 52 ME
2 female 57 BSCS
9 female 57 MA
4 female 61 BSCS
3 male 66 BE
Die obige Ausgabe zeigt, dass das Alter in aufsteigender Reihenfolge zusammen mit dem entsprechenden Geschlecht angeordnet ist und die Informationen zum Abschluss erhalten werden.
Herzlichen Glückwunsch
Glückwunsch, du hast es bis zum Ende dieses Tutorials geschafft!
Du hast gelernt, wie man mit order()
und seinem Argument mit den Beispielen und dem Sortieren von Vektoren mit verschiedenen Parametern und dem letzten Beispiel, das das Sortieren des Datenrahmens beinhaltet, sortiert.
Um mehr über dieses Thema zu erfahren, kannst du die Funktion Bestellen in R besuchen
Wenn du mehr über R erfahren möchtest, besuche den DataCamp-Kurs Einführung in R.