Sortera DataFrame i R

Sortera Dataframe I R



Att sortera DataFrames i R är en avgörande operation vid dataanalys och manipulation. Betecknande nog ger R mycket flexibilitet när det gäller att sortera data baserat på flera kolumner och sortera i stigande eller fallande ordning. I R kan sortering av DataFrames utföras med en mängd olika metoder och funktioner. I den här artikeln kommer vi att gå igenom olika funktioner som hjälper oss att sortera DataFrame i någon av de angivna ordningarna.

Exempel 1: Sortera DataFrame med Order()-metoden i R

Order()-funktionen i R används för att sortera DataFrames efter en eller flera kolumner. Ordningsfunktionen hämtar indexen för de sorterade raderna för att ordna om raderna i DataFrame.

emp = data. ram ( namn = c ( 'Andy' , 'Mark' , 'Bonnie' , 'Caroline' , 'John' ) ,

ålder = c ( tjugoett , 23 , 29 , 25 , 32 ) ,

lön = c ( 2000 , 1000 , 1500 , 3000 , 2500 ) )

katt ( ' \n \n Dataram sorterad efter namn i stigande ordning \n ' )

sorterad_asc = emp [ med ( emp , beställa ( namn ) ) , ]

skriva ut ( sorterad_asc )

Här definierar vi 'emp' DataFrame med tre kolumner som innehåller olika värden. Cat()-funktionen används för att skriva ut satsen för att indikera att 'emp' DataFrame i kolumnen 'names' i stigande ordning kommer att sorteras. För detta använder vi funktionen order() i R som returnerar indexpositionerna för värdena i en vektor som är sorterad i stigande ordning. I det här fallet anger with()-funktionen att kolumnen 'namn' ska sorteras. Den sorterade DataFrame lagras i variabeln 'sorted_asc' som skickas som ett argument i print()-funktionen för att skriva ut de sorterade resultaten.







Därför visas de sorterade resultaten av DataFrame efter kolumnen 'namn' i stigande ordning i det följande. För att få sorteringsoperationen i fallande ordning kan vi bara ange det negativa tecknet med kolumnnamnet i den föregående order()-funktionen:





Exempel 2: Sortera DataFrame med hjälp av Order()-metodens parametrar i R

Dessutom tar funktionen order() de minskande argumenten för att sortera DataFrame. I följande exempel anger vi funktionen order() med argumentet att sortera i ökande eller minskande ordning:





df = data. ram (

id = c ( 1 , 3 , 4 , 5 , 2 ) ,

kurs = c ( 'Pytonorm' , 'Java' , 'C++' , 'MongoDB' , 'R' ) )

skriva ut ( 'Sorterat i fallande ordning efter ID' )

skriva ut ( df [ beställa ( df$id , minskar = SANN ) , ] )

Här deklarerar vi först variabeln 'df' där data.frame()-funktionen är definierad med tre olika kolumner. Därefter använder vi funktionen print() där vi skriver ut ett meddelande för att indikera att DataFrame kommer att sorteras i minskande ordning baserat på kolumnen 'id'. Efter det distribuerar vi funktionen print() igen för att utföra sorteringsoperationen och skriva ut dessa resultat. Inuti print()-funktionen anropar vi 'order'-funktionen för att sortera 'df' DataFrame baserat på 'course'-kolumnen. Argumentet 'minskande' är satt till TRUE för att sortera i fallande ordning.

I följande illustration är DataFrames 'id'-kolumn ordnad i fallande ordning:



Men för att få sorteringsresultaten i stigande ordning måste vi ställa in det minskande argumentet för funktionen order() med FALSE som visas i följande:

skriva ut ( 'Sorterat i ökande ordning efter ID' )

skriva ut ( df [ beställa ( df$id , minskar = FALSK ) , ] )

Där får vi utdata från sorteringsoperationen för DataFrame efter kolumnen 'id' i stigande ordning.

Exempel 3: Sortera DataFrame med metoden Arrange() i R

Dessutom kan vi också använda metoden arrange() för att sortera en DataFrame efter kolumner. Vi kan också sortera i stigande eller fallande ordning. Följande givna R-kod använder funktionen arrange():

bibliotek ( 'dplyr' )

studerande = data. ram (

Id = c ( 3 , 5 , 2 , 4 , 1 ) ,

märken = c ( 70 , 90 , 75 , 88 , 92 ) )

skriva ut ( 'Ökande ordningssortering efter ID' )

skriva ut ( ordna ( studerande , Id ) )

Här laddar vi 'dplyr'-paketet av R för att komma åt arrange()-metoden för sortering. Sedan har vi funktionen data.frame() som innehåller två kolumner och ställer in DataFrame i variabeln 'student'. Därefter distribuerar vi arrange()-funktionen från 'dplyr'-paketet i print()-funktionen för att sortera den givna DataFrame. Funktionen arrange() tar 'student' DataFrame som sitt första argument, följt av 'Id' för kolumnerna att sortera efter. Print()-funktionen i slutet skriver ut den sorterade DataFrame till konsolen.

Vi kan se var 'Id'-kolumnen är sorterad i en sekvens i följande utdata:

Exempel 4: Sortera DataFrame efter datum i R

DataFrame i R kan också sorteras efter datumvärden. För detta måste den sorterade funktionen anges med funktionen as.date() för att formatera datumen.

händelse_datum = data. ram ( händelse = c ( '3/4/2023' , '2/2/2023' ,

'10/1/2023' , '2023-03-29' ) ,

kostnader = c ( 3100 , 2200 , 1000 , 2900 ) )

händelse_datum [ beställa ( som . Datum ( event_date$event , formatera = '%d/%m/%Y' ) ) , ]

Här har vi en 'event_date' DataFrame som innehåller kolumnen 'händelse' med datumsträngarna i formatet 'månad/dag/år'. Vi måste sortera dessa datumsträngar i stigande ordning. Vi använder funktionen order() som sorterar DataFrame efter kolumnen 'händelse' i stigande ordning. Vi åstadkommer detta genom att konvertera datumsträngarna i kolumnen 'händelse' till de faktiska datumen med funktionen 'as.Date' och specificera formatet för datumsträngarna med parametern 'format'.

Således representerar vi data som sorteras efter datumkolumnen 'händelse' i stigande ordning.

Exempel 5: Sortera DataFrame med metoden Setorder() i R

På samma sätt är setorder() också en annan metod för att sortera DataFrame. Den sorterar DataFrame genom att ta argumentet precis som arrange()-metoden. R-koden för metoden setorder() ges enligt följande:

bibliotek ( 'datatabell' )

d1 = data. ram ( orderId = c ( 1 , 4 , 2 , 5 , 3 ) ,

beställningsartikel = c ( 'äpple' , 'orange' , 'kiwi' , 'mango' , 'banan' ) )

skriva ut ( sätta ordning ( d1 , beställningsartikel ) )

Här ställer vi in ​​data.table-biblioteket först eftersom setorder() är funktionen för detta paket. Sedan använder vi funktionen data.frame() för att skapa DataFrame. DataFrame är specificerad med endast två kolumner som vi använder för att sortera. Efter detta ställer vi in ​​setorder()-funktionen i print()-funktionen. Funktionen setorder() tar 'd1' DataFrame som den första parametern och kolumnen 'orderId' som den andra parametern efter vilken DataFrame sorteras. Funktionen 'setorder' ordnar om raderna i datatabellen i stigande ordning baserat på värdena i kolumnen 'orderId'.

Den sorterade DataFrame är utdata i följande konsol av R:

Exempel 6: Sortera DataFrame med metoden Row.Names() i R

Metoden row.names() är också ett sätt att sortera DataFrame i R. row.names() sorterar DataFrames efter den angivna raden.

df < - data. ram ( team = c ( 'X' , 'X' , 'OCH' , 'OCH' , 'MED' ) ,

Göra = c ( 91 , 80 , 86 , 83 , 95 ) )

rad. namn ( df ) < - c ( 'A' , 'D' , 'C' , 'OCH' , 'B' )

df [ beställa ( rad. namn ( df ) ) , ]

Här etableras data.frame()-funktionen inom variabeln 'df' där kolumnerna anges med värdena. Sedan specificeras DataFrames radnamn med funktionen row.names() . Efter det anropar vi funktionen order() för att sortera DataFrame efter radnamn. Funktionen order() returnerar indexen för de sorterade raderna som används för att omorganisera raderna i DataFrame.

Utdatan visar den sorterade DataFrame efter rader alfabetiskt:

Slutsats

Vi har sett de olika funktionerna för att sortera DataFrames i R. Var och en av metoderna har en fördel och behöver sorteringsoperationen. Det kan finnas fler metoder eller sätt att sortera DataFrame i R-språk men metoderna order(), arrange() och setorder() är de viktigaste och enkla att använda för sortering.