Hvordan å Sortere Data Ramme av Flere Kolonner i R

posted in: Articles | 0

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

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *