om te begrijpen hoe je dataframe correct sorteert in R
, moeten we natuurlijk eerst een dataframe genereren om te manipuleren.
opmerking: de spatiëring is niet nodig, maar het verbetert de leesbaarheid.,
bij het Uitvoeren van onze run.R
script voert de lijst van vectoren in onze data frame zoals verwacht, in de volgorde waarin ze zijn ingevoerd:
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1
De Volgorde Functie
Hoewel misschien niet de makkelijkste sorteermethode naar type in termen van syntax, degene die het meest direct beschikbaar voor alle installaties R
, omdat ze een deel van de base
module, is de order
functie.,
de functie order
accepteert een aantal argumenten, maar op het eenvoudigste niveau moet het eerste argument een reeks waarden of logische vectoren zijn.,
bijvoorbeeld, kunnen we gebruik order()
gewoon een soort vector van vijf willekeurige volgorde de nummers met dit script:
# Create unordered vectorvector = c(2, 5, 1, 3, 4)# Print vectorvector# Sort in ascending ordervector
het Uitvoeren van het script, zien we de eerste uitvoer van de ongeordende vector, gevolgd door de inmiddels geordende lijst daarna:
$ Rscript run.R 2 5 1 3 4 1 2 3 4 5
Sorteren van een Data Frame door de Vector Naam
Met de order()
functie die in onze tool belt, zullen we beginnen met het sorteren van onze data frame door het passeren in de vector namen in het data-frame.,
bijvoorbeeld, met behulp van ons eerder gegenereerde dataframe
object, kunnen we Sorteren op de vector z
door de volgende code aan ons script toe te voegen:
# Sort by vector name dataframe
wat we effectief doen is het aanroepen van onze originele dataframe
object, en doorgeven in de nieuwe index volgorde die we willen hebben., Deze indexvolgorde wordt gegenereerd met behulp van de functie with()
, die effectief een nieuwe omgeving creëert met behulp van de doorgegeven gegevens in het eerste argument samen met een expressie voor het evalueren van die gegevens in het tweede argument.
dus herevalueren we de dataframe
data met behulp van de order()
functie, en we willen volgorde op basis van de z
vector binnen dat gegevensframe., Dit retourneert een nieuwe indexvolgorde voor de data frame waarden, die dan uiteindelijk wordt geëvalueerd binnen de of dataframe
, het uitvoeren van ons nieuwe geordende resultaat.
$ 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
bijgevolg zien we onze oorspronkelijke ongeordende uitvoer, gevolgd door een tweede uitvoer met de gegevens gesorteerd op kolom z
.
Sorteren op Kolomindex
vergelijkbaar met de bovenstaande methode, is het ook mogelijk om te sorteren op basis van de numerieke index
van een kolom in het gegevensframe, in plaats van de specifieke naam.,
in plaats van de functie with()
te gebruiken, kunnen we de functie order()
gewoon doorgeven aan onze functie dataframe
. We geven aan dat we willen Sorteren op de kolom van index 1
met behulp van de dataframe
syntaxis, waardoor R
de niveaus (namen) van die index 1
retourneren., In andere woorden, net als toen we voorbij de z
vector naam boven order
sorteren op basis van de vector waarden die binnen de kolom van de index 1
:
dataframe ),]
Zoals verwacht, krijgen we onze normale uitgang gevolgd door de gesorteerde uitvoer in de eerste kolom:
$ 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
Sorteren op Meerdere Kolommen
In sommige gevallen, het kan wenselijk zijn om te sorteren op meerdere kolommen. Gelukkig, dit te doen is zeer eenvoudig met de eerder beschreven methoden.,
om meerdere kolommen te sorteren met behulp van vectornamen, voegt u gewoon extra argumenten toe aan de order()
functietoeroep zoals eerder:
# Sort by vector name then dataframe
om op meerdere kolommen te sorteren op basis van kolomindex, voegt u extra argumenten toe aan order()
met verschillende indices:
# Sort by column index then dataframe, dataframe ),]
Geef een reactie