A: come ordinare il frame di dati utilizzando l'attributo row.names
È possibile utilizzare i due metodi seguenti per ordinare un frame di dati in R utilizzando l’attributo row.names :
Metodo 1: ordinamento utilizzando i caratteri row.names
df[order( row.names (df)), ]
Metodo 2: ordinamento utilizzando righe.nomi numerici
df[order(as. numeric (row. names (df))), ]
Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.
Esempio 1: ordinare il frame di dati utilizzando i nomi delle righe di caratteri
Supponiamo di avere il seguente frame di dati in 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
Possiamo utilizzare la seguente sintassi per ordinare alfabeticamente le righe nel frame di dati utilizzando l’attributo 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
Le righe vengono ordinate dalla A alla Z in base al valore del nome della riga.
Puoi anche usare l’argomento descending=TRUE per ordinare dalla Z alla 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
Esempio 2: ordinare il frame di dati utilizzando nomi di riga numerici
Supponiamo di avere il seguente frame di dati in 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
Possiamo usare la seguente sintassi per ordinare le righe nel data frame utilizzando l’attributo 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
Potremmo anche usare descending=TRUE per ordinare dal più grande al più piccolo:
#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
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni in R:
Come utilizzare sort(), order() e Rank() in R
Come ordinare per più colonne in R
Come ordinare un frame di dati per data in R