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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *