Як сортувати за кількома стовпцями в r (з прикладами)


Ви можете використовувати будь-який із наведених нижче методів, щоб відсортувати фрейм даних за кількома стовпцями в R:

Спосіб 1: Використовуйте Base R

 df[order(-df$column1, df$column2), ]

Спосіб 2: використовуйте dplyr

 library (dplyr)

df %>%
  arrange( desc (column1), column2)

У наведених нижче прикладах показано, як використовувати кожен метод на практиці з таким кадром даних:

 #create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F', 'G'),
                 points=c(90, 90, 93, 91, 91, 99, 85),
                 assists=c(33, 28, 31, 39, 34, 40, 44))

#view data frame
df

  team points assists
1 A 90 33
2 B 90 28
3 C 93 31
4 D 91 39
5 E 91 34
6 F 99 40
7 G 85 44

Спосіб 1: Використовуйте Base R

Наступний код показує, як відсортувати блок даних на основі R за низхідними точками (від найбільшого до найменшого), а потім за зростанням допоміжних елементів :

 #sort by points descending, then by assists ascending
df[order(-df$points, df$assists), ]

  team points assists
6 F 99 40
3 C 93 31
5 E 91 34
4 D 91 39
2 B 90 28
1 A 90 33
7 G 85 44

Зауважте, що рядки у кадрі даних упорядковані за очками від найбільшого до найменшого, а потім за допомогами від найменшого до найбільшого.

Спосіб 2: використовуйте dplyr

Наступний код показує, як використовувати функції в пакеті dplyr для сортування кадру даних за низхідними точками (від найбільшого до найменшого), а потім за зростанням допомоги :

 library (dplyr)

df %>%
  arrange( desc (dots), assists)

  team points assists
1 F 99 40
2 C 93 31
3 E 91 34
4 D 91 39
5 B 90 28
6 A 90 33
7 G 85 44

Знову ж таки, рядки у кадрі даних упорядковані за очками від найбільшого до найменшого, а потім за допомогою від найменшого до найбільшого.

Примітка . Повну документацію щодо функції arrange() можна знайти тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції сортування в R:

Як сортувати значення в алфавітному порядку в R
Як відсортувати кадр даних за датою в R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *