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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *