Odp.: jak posortować ramkę danych przy użyciu atrybutu row.names
Do sortowania ramki danych w języku R przy użyciu atrybutu row.names można użyć dwóch następujących metod:
Metoda 1: Sortuj przy użyciu znaków row.names
df[order( row.names (df)), ]
Metoda 2: Sortuj przy użyciu liczbowych nazw wierszy
df[order(as. numeric (row. names (df))), ]
Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.
Przykład 1: Sortuj ramkę danych za pomocą nazw wierszy znaków
Załóżmy, że mamy następującą ramkę danych w 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
Możemy użyć następującej składni, aby posortować wiersze w ramce danych alfabetycznie za pomocą atrybutu 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
Wiersze są sortowane od A do Z na podstawie wartości nazwy wiersza.
Możesz także użyć argumentu malejąco=PRAWDA, aby posortować od Z do A:
#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
Przykład 2: Posortuj ramkę danych za pomocą numerycznych nazw wierszy
Załóżmy, że mamy następującą ramkę danych w 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
Do sortowania wierszy w ramce danych przy użyciu atrybutu row.names możemy zastosować następującą składnię:
#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
Możemy również użyć malejącego=TRUE , aby posortować od największego do najmniejszego:
#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
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w języku R:
Jak używać sort(), Order() i Rank() w R
Jak sortować według wielu kolumn w R
Jak posortować ramkę danych według daty w R