R : Comment trier le bloc de données à l’aide de l’attribut row.names
Vous pouvez utiliser les deux méthodes suivantes pour trier un bloc de données dans R à l’aide de l’attribut row.names :
Méthode 1 : Trier à l’aide des caractères row.names
df[order(row.names(df)), ]
Méthode 2 : trier à l’aide de row.names numériques
df[order(as.numeric(row.names(df))), ]
Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.
Exemple 1 : trier le bloc de données à l’aide des noms de lignes de caractères
Supposons que nous ayons le bloc de données suivant dans 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
A G 99 33 30
C G 90 28 28
E F 86 31 24
D F 88 39 24
B C 95 34 28
Nous pouvons utiliser la syntaxe suivante pour trier les lignes du bloc de données par ordre alphabétique à l’aide de l’attribut row.names :
#sort rows alphabetically using row.names
df[order(row.names(df)), ]
position points assists rebounds
A G 99 33 30
B C 95 34 28
C G 90 28 28
D F 88 39 24
E F 86 31 24
Les lignes sont triées de A à Z en fonction de la valeur du nom de ligne.
Vous pouvez également utiliser l’argument décroissant=TRUE pour trier de Z vers A :
#sort rows from Z to A using row.names
df[order(row.names(df), decreasing=TRUE), ]
position points assists rebounds
E F 86 31 24
D F 88 39 24
C G 90 28 28
B C 95 34 28
A G 99 33 30
Exemple 2 : trier le bloc de données à l’aide de noms de lignes numériques
Supposons que nous ayons le bloc de données suivant dans 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
1 G 99 33 30
100 G 90 28 28
4 F 86 31 24
12 F 88 39 24
19 C 95 34 28
Nous pouvons utiliser la syntaxe suivante pour trier les lignes du bloc de données à l’aide de l’attribut row.names :
#sort by row names from smallest to largest
df[order(as.numeric(row.names(df))), ]
position points assists rebounds
1 G 99 33 30
4 F 86 31 24
12 F 88 39 24
19 C 95 34 28
100 G 90 28 28
Nous pourrions également utiliser décroissant=TRUE pour trier du plus grand au plus petit :
#sort by row names from largest to smallest
df[order(as.numeric(row.names(df)), decreasing=TRUE), ]
position points assists rebounds
100 G 90 28 28
19 C 95 34 28
12 F 88 39 24
4 F 86 31 24
1 G 99 33 30
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans R :
Comment utiliser sort(), order() et Rank() dans R
Comment trier par plusieurs colonnes dans R
Comment trier une trame de données par date dans R