Сортирайте DataFrame в R

Sortirajte Dataframe V R



Сортирането на DataFrames в R е ключова операция при анализа и манипулирането на данни. Показателно е, че R предоставя много гъвкавост при сортиране на данните въз основа на множество колони и сортиране във възходящ или низходящ ред. В R сортирането на DataFrames може да се осъществи с помощта на различни методи и функции. В тази статия ще разгледаме различни функции, които ни помагат да сортираме DataFrame във всеки от посочените редове.

Пример 1: Сортиране на DataFrame с помощта на метода Order() в R

Функцията order() в R се използва за сортиране на DataFrames по една или няколко колони. Функцията за поръчка получава индексите на сортираните редове, за да пренареди редовете на DataFrame.

имп = данни. кадър ( имена = ° С ( 'Анди' , 'Марк' , 'Бони' , 'Каролайн' , 'Джон' ) ,

възраст = ° С ( двадесет и едно , 23 , 29 , 25 , 32 ) ,

заплата = ° С ( 2000 г , 1000 , 1500 , 3000 , 2500 ) )

котка ( ' Рамка с данни, сортирана по имена във възходящ ред ' )

сортирано_възходящо = имп [ с ( имп , поръчка ( имена ) ) , ]

печат ( сортирано_възходящо )

Тук дефинираме „emp“ DataFrame с три колони, съдържащи различни стойности. Функцията cat() е разгърната, за да отпечата израза, за да покаже, че „emp“ DataFrame от колоната „names“ във възходящ ред ще бъде сортирана. За целта използваме функцията order() в R, която връща индексните позиции на стойностите във вектор, който е сортиран във възходящ ред. В този случай функцията with() указва, че колоната „имена“ трябва да бъде сортирана. Сортираният DataFrame се съхранява в променливата „sorted_asc“, която се предава като аргумент във функцията print() за отпечатване на сортираните резултати.







Следователно сортираните резултати на DataFrame по колона „имена“ във възходящ ред се показват по-долу. За да получим операцията за сортиране в низходящ ред, можем просто да посочим отрицателния знак с името на колоната в предишната функция order():





Пример 2: Сортиране на DataFrame с помощта на параметрите на метода Order() в R

Освен това функцията order() приема намаляващите аргументи, за да сортира DataFrame. В следващия пример ние указваме функцията order() с аргумента за сортиране във възходящ или намаляващ ред:





df = данни. кадър (

документ за самоличност = ° С ( 1 , 3 , 4 , 5 , 2 ) ,

курс = ° С ( 'Python' , 'Java' , 'C++' , 'MongoDB' , 'R' ) )

печат ( „Сортирани в низходящ ред по ID“ )

печат ( df [ поръчка ( df$id , намаляващи = ВЯРНО ) , ] )

Тук първо декларираме променливата „df“, където функцията data.frame() е дефинирана с три различни колони. След това използваме функцията print(), където отпечатваме съобщение, за да покажем, че DataFrame ще бъде сортиран в низходящ ред въз основа на колоната „id“. След това разгръщаме отново функцията print(), за да извършим операцията по сортиране и да отпечатаме тези резултати. Във функцията print() извикваме функцията „order“, за да сортираме „df“ DataFrame въз основа на колоната „course“. Аргументът „намаляващ“ е зададен на TRUE за сортиране в низходящ ред.

В следващата илюстрация колоната „id“ на DataFrame е подредена в низходящ ред:



Въпреки това, за да получим резултатите от сортирането във възходящ ред, трябва да зададем намаляващия аргумент на функцията order() с FALSE, както е показано по-долу:

печат ( „Сортирани във възходящ ред по ID“ )

печат ( df [ поръчка ( df$id , намаляващи = НЕВЯРНО ) , ] )

Там получаваме резултата от операцията за сортиране на DataFrame по колоната „id“ във възходящ ред.

Пример 3: Сортиране на DataFrame с помощта на метода Arrange() в R

Освен това можем също да използваме метода arrange() за сортиране на DataFrame по колони. Можем също да сортираме във възходящ или низходящ ред. Следният даден R код използва функцията arrange():

библиотека ( 'dplyr' )

студент = данни. кадър (

Документ за самоличност = ° С ( 3 , 5 , 2 , 4 , 1 ) ,

марки = ° С ( 70 , 90 , 75 , 88 , 92 ) )

печат ( „Увеличаване на реда на сортиране по идентификатор“ )

печат ( подредете ( студент , Документ за самоличност ) )

Тук зареждаме пакета „dplyr“ на R за достъп до метода arrange() за сортиране. След това имаме функцията data.frame(), която съдържа две колони и задава DataFrame в променливата „student“. След това внедряваме функцията arrange() от пакета „dplyr“ във функцията print(), за да сортираме дадения DataFrame. Функцията arrange() приема „student“ DataFrame като първи аргумент, последван от „Id“ на колоните, по които да сортира. Функцията print() в крайна сметка отпечатва сортирания DataFrame на конзолата.

Можем да видим къде колоната „Id“ е сортирана в последователност в следния изход:

Пример 4: Сортиране на DataFrame по дата в R

DataFrame в R може също да бъде сортиран по стойностите на датата. За тази цел сортираната функция трябва да бъде посочена с функцията as.date() за форматиране на датите.

дата на събитие = данни. кадър ( събитие = ° С ( „4.3.2023 г.“ , „02.02.2023 г.“ ,

„10/1/2023“ , „29.3.2023 г.“ ) ,

обвинения = ° С ( 3100 , 2200 , 1000 , 2900 ) )

дата на събитие [ поръчка ( като . Дата ( събитие_дата$събитие , формат = '%d/%m/%Y' ) ) , ]

Тук имаме DataFrame „event_date“, който съдържа колоната „event“ с низовете за дата във формат „месец/ден/година“. Трябва да сортираме тези низове с дати във възходящ ред. Използваме функцията order(), която сортира DataFrame по колоната „събитие“ във възходящ ред. Ние постигаме това, като преобразуваме низовете за дата в колоната „събитие“ в действителните дати с помощта на функцията „as.Date“ и указваме формата на низовете за дата с помощта на параметъра „format“.

По този начин ние представяме данните, които са сортирани по колоната с дата „събитие“ във възходящ ред.

Пример 5: Сортиране на DataFrame с помощта на метода Setorder() в R

По подобен начин setorder() също е друг метод за сортиране на DataFrame. Той сортира DataFrame, като взема аргумента точно като метода arrange(). R кодът за метода setorder() е даден, както следва:

библиотека ( 'таблица с данни' )

d1 = данни. кадър ( orderId = ° С ( 1 , 4 , 2 , 5 , 3 ) ,

OrderItem = ° С ( 'ябълка' , 'портокал' , 'киви' , 'манго' , 'банан' ) )

печат ( задайте ред ( d1 , OrderItem ) )

Тук първо задаваме библиотеката data.table, тъй като setorder() е функцията на този пакет. След това използваме функцията data.frame(), за да създадем DataFrame. DataFrame е посочен само с две колони, които използваме за сортиране. След това задаваме функцията setorder() в рамките на функцията print(). Функцията setorder() приема „d1“ DataFrame като първи параметър и колоната „orderId“ като втори параметър, по който DataFrame се сортира. Функцията „setorder“ пренарежда редовете на таблицата с данни във възходящ ред въз основа на стойностите в колоната „orderId“.

Сортираният DataFrame е изходът в следната конзола на R:

Пример 6: Сортиране на DataFrame с помощта на метода Row.Names() в R

Методът row.names() също е начин за сортиране на DataFrame в R. row.names() сортира DataFrames по посочения ред.

df < - данни. кадър ( екип = ° С ( 'Х' , 'Х' , 'И' , 'И' , „С“ ) ,

резултат = ° С ( 91 , 80 , 86 , 83 , 95 ) )

ред. имена ( df ) < - ° С ( 'А' , 'Д' , '° С' , 'И' , 'Б' )

df [ поръчка ( ред. имена ( df ) ) , ]

Тук функцията data.frame() е установена в променливата „df“, където колоните са посочени със стойностите. След това имената на редовете на DataFrame се указват с помощта на функцията row.names(). След това извикваме функцията order(), за да сортираме DataFrame по имена на редове. Функцията order() връща индексите на сортираните редове, които се използват за реорганизиране на редовете на DataFrame.

Резултатът показва сортирания DataFrame по редове по азбучен ред:

Заключение

Видяхме различните функции за сортиране на DataFrames в R. Всеки от методите има предимство и се нуждае от операцията за сортиране. Може да има повече методи или начини за сортиране на DataFrame на езика R, но методите order(), arrange() и setorder() са най-важните и лесни за използване за сортиране.