A: як сортувати фрейм даних за допомогою атрибута row.names
Ви можете використовувати наступні два методи для сортування кадру даних у R за допомогою атрибута row.names :
Спосіб 1: Сортування за допомогою символів row.names
df[order( row.names (df)), ]
Спосіб 2: сортування за допомогою числових імен рядків
df[order(as. numeric (row. names (df))), ]
Наступні приклади показують, як використовувати кожен метод на практиці.
Приклад 1: Сортування фрейму даних за іменами рядків символів
Припустимо, що ми маємо наступний кадр даних у R:
#create data frame
df <- data. frame (position=c('G', 'G', 'F', 'F', 'C'),
points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34),
rebounds=c(30, 28, 24, 24, 28))
#set row names of data frame
row. names (df) <- c('A', 'C', 'E', 'D', 'B')
#view data frame
df
position points assists rebounds
GA 99 33 30
CG 90 28 28
EF 86 31 24
FD 88 39 24
BC 95 34 28
Ми можемо використати наступний синтаксис для сортування рядків у фреймі даних за алфавітом за допомогою атрибута row.names :
#sort rows alphabetically using row.names
df[order( row.names (df)), ]
position points assists rebounds
GA 99 33 30
BC 95 34 28
CG 90 28 28
FD 88 39 24
EF 86 31 24
Рядки сортуються від А до Я на основі значення імені рядка.
Ви також можете використовувати аргумент descending=TRUE для сортування від Я до А:
#sort rows from Z to A using row.names
df[order(row. names (df), decreasing= TRUE ), ]
position points assists rebounds
EF 86 31 24
FD 88 39 24
CG 90 28 28
BC 95 34 28
GA 99 33 30
Приклад 2: відсортуйте фрейм даних за допомогою числових імен рядків
Припустимо, що ми маємо наступний кадр даних у R:
#create data frame
df <- data. frame (position=c('G', 'G', 'F', 'F', 'C'),
points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34),
rebounds=c(30, 28, 24, 24, 28))
#set row names of data frame
row. names (df) <- c(1, 100, 4, 12, 19)
#view data frame
df
position points assists rebounds
1G 99 33 30
100G 90 28 28
4 F 86 31 24
12 F 88 39 24
19 C 95 34 28
Ми можемо використати наступний синтаксис для сортування рядків у фреймі даних за допомогою атрибута row.names :
#sort by row names from smallest to largest
df[order(as. numeric (row. names (df))), ]
position points assists rebounds
1G 99 33 30
4 F 86 31 24
12 F 88 39 24
19 C 95 34 28
100G 90 28 28
Ми також можемо використати descending=TRUE для сортування від найбільшого до найменшого:
#sort by row names from largest to smallest
df[order(as. numeric (row. names (df)), decreasing= TRUE ), ]
position points assists rebounds
100G 90 28 28
19 C 95 34 28
12 F 88 39 24
4 F 86 31 24
1G 99 33 30
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові операції в R:
Як використовувати sort(), order() і Rank() у R
Як сортувати за кількома стовпцями в R
Як відсортувати кадр даних за датою в R