for å begynne Å forstå hvordan du skal sortere data rammer i R
vi selvfølgelig må først generere en data ramme for å manipulere.
Merk: avstanden er ikke nødvendig, men det gir bedre lesbarhet.,
du Utfører våre run.R
skript-utganger listen av vektorer i våre data ramme som forventet, i den rekkefølgen de ble skrevet inn:
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1
For Funksjon
Mens kanskje ikke den enkleste sortering metode for å skrive ut i form av syntaks, det som er mest lett tilgjengelig for alle installasjoner av R
, grunn til å være en del av base
modulen, er order
funksjon.,
order
funksjon aksepterer en rekke argumenter, men på enkleste nivå det første argumentet må være en sekvens av verdier eller logiske vektorer.,
For eksempel, kan vi bruke order()
å bare sortere en vektor av fem tilfeldig bestilt tall med dette skriptet:
# Create unordered vectorvector = c(2, 5, 1, 3, 4)# Print vectorvector# Sort in ascending ordervector
Utføring av skriptet, kan vi se den første produksjonen av den sorterte vektor, etterfulgt av nå-listen etterpå:
$ Rscript run.R 2 5 1 3 4 1 2 3 4 5
Sortering av Data Rammen av Vektor-Navn
Med order()
funksjon i verktøyet vårt belte, vil vi begynne å sortere våre data rammen av pasninger i vektor navn innen data ramme.,
For eksempel, ved hjelp av våre tidligere genererte dataframe
objektet, kan vi sortere etter vector z
ved å legge til følgende kode for å skriptet:
# Sort by vector name dataframe
Hva vi er effektivt å gjøre er å ringe vårt opprinnelige dataframe
objekt, og går i den nye indeksen for at vi ønsker å ha., Denne indeksen ordre er generert ved bruk av with()
funksjon, som effektivt skaper et nytt miljø med bestått i data i det første argumentet sammen med et uttrykk for evaluering av at data i det andre argumentet.
Derfor, vi er reevaluating dataframe
data ved hjelp av order()
funksjon, og vi ønsker å bestille basert på z
vektor i at data ramme., Denne returnerer en ny indeks for data ramme verdier, som er så til slutt evaluert i løpet av dataframe
, å gi ut vår nye bestilt resultat.
$ 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
Derfor, ser vi det som vår originale unummerert utgang, etterfulgt av en andre-utgang med dataene sortert etter kolonne z
.
Sortere etter Kolonne Indeks
Lik den metoden ovenfor, er det også mulig å sortere basert på det numeriske index
av en kolonne i data ramme, snarere enn spesifikke navn.,
i Stedet for with()
funksjon, vi kan bare bestå order()
funksjonen til vår dataframe
. Vi viser at vi ønsker å sortere etter kolonne av indeks 1
ved å bruke dataframe
syntaks, noe som fører til R
for å returnere nivåer (navn) av at indeksen 1
kolonne., Med andre ord, som når vi gikk i z
vektor navn over, order
er sortering basert på vektor-verdier som er innenfor kolonne av indeks 1
:
dataframe ),]
Som forventet, vi får våre normal utgang etterfulgt av sortert ut i den første kolonnen:
$ 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
Sortere etter Flere Kolonner
I noen tilfeller, det kan være ønskelig å sortere etter flere kolonner. Heldigvis, dette er veldig enkel med den tidligere beskrevne metoder.,
for Å sortere på flere kolonner ved å bruke vektor navn, ganske enkelt legge til flere argumenter til order()
funksjon ringe som før:
# Sort by vector name then dataframe
på samme måte, hvis du vil sortere etter flere kolonner basert på kolonne-indeksen, legg til flere argumenter til order()
med ulike indekser:
# Sort by column index then dataframe, dataframe ),]
Legg igjen en kommentar