sådan sorteres en dataramme efter flere kolonner i R

posted in: Articles | 0

for at begynde at forstå, hvordan man korrekt sorterer datarammer i R, skal vi selvfølgelig først generere en dataramme for at manipulere.bemærk: afstanden er ikke nødvendig, men det forbedrer læsbarheden.,

udførelse af vores run.R script udsender listen over vektorer i vores dataramme som forventet, i den rækkefølge, de blev indtastet:

$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1

Ordrefunktionen

mens måske ikke den nemmeste sorteringsmetode til at skrive ud i form af syntaks, er den ene eller den anden måde at det er mest tilgængeligt for alle installationer af R, på grund af at være en del af base modulet, er order funktionen.,

order funktionen accepterer et antal argumenter, men på det enkleste niveau skal det første argument være en sekvens af værdier eller logiske vektorer.,

For eksempel, kan vi bruge order() blot at sortere en vektor af fem tilfældigt bestilt numre med dette script:

# Create unordered vectorvector = c(2, 5, 1, 3, 4)# Print vectorvector# Sort in ascending ordervector

Udførelse af scriptet, kan vi se den oprindelige produktion af uordnet vektor, efterfulgt af det nu ordnet liste bagefter:

$ Rscript run.R 2 5 1 3 4 1 2 3 4 5

Sortering af en Data Frame af Vektor Navn

Med order() fungerer i vores værktøj bælte, vil vi begynde at sortere vores data frame ved at passere den vektor af navne inden for data frame.,

For eksempel, ved hjælp af vores tidligere genererede dataframe objekt, vi kan sortere efter, vektor z ved at tilføje følgende kode til vores script:

# Sort by vector name dataframe

Hvad vi er reelt gør, er at ringe til vores oprindelige dataframe genstand, og går i det nye indeks, for at vi gerne vil have., Denne indeksordre genereres ved hjælp af funktionen with(), som effektivt skaber et nyt miljø ved hjælp af de overførte data i det første argument sammen med et udtryk til evaluering af disse data i det andet argument.

således revurderer vi dataframe data ved hjælp af order() – funktionen, og vi vil bestille baseret på z vektor inden for denne dataramme., Dette returnerer en ny indeksordre for datarammeværdierne, som derefter endelig evalueres inden for dataframe, der udsender vores nye bestilte 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 vores oprindelige uordnede output, efterfulgt af en anden output med dataene sorteret efter kolonne z.

Sortering af Kolonne Index

Lig ovenstående metode, er det også muligt at sortere baseret på det numeriske index i en kolonne i data frame, snarere end den specifikke betegnelse.,

i stedet for at bruge funktionen with(), kan vi blot overføre funktionen order() til vores dataframe. Vi angiver, at vi vil sortere efter kolonnen med indeks 1 ved at brugedataframe syntaks, hvilket forårsagerR for at returnere niveauerne (navne) for det indeks1 kolonne., Med andre ord, der ligner, når vi passerede i z vektor navn ovenfor, order sortering er baseret på vektor af værdier, der er inden for kolonne af index 1:

dataframe ),]

Som forventet, vi får vores normale produktion efterfulgt af sorteret output i den første kolonne:

$ 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

Sortering af Flere Kolonner

I nogle tilfælde, det kan være ønskede at sortere efter flere kolonner. Heldigvis er det meget enkelt med de tidligere beskrevne metoder.,

for At sortere på flere kolonner ved hjælp af vektor af navne, skal du blot tilføje yderligere argumenter til order() funktionskald som før:

# Sort by vector name then dataframe

på samme måde, at sortere efter flere kolonner, baseret på kolonne-indekset, tilføj yderligere argumenter for, at order() med forskellige indeks:

# Sort by column index then dataframe, dataframe ),]

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *