A: como classificar o quadro de dados usando o atributo row.names
Você pode usar os dois métodos a seguir para classificar um quadro de dados em R usando o atributo row.names :
Método 1: classificar usando caracteres row.names
df[order( row.names (df)), ]
Método 2: classificar usando row.names numéricos
df[order(as. numeric (row. names (df))), ]
Os exemplos a seguir mostram como usar cada método na prática.
Exemplo 1: Classifique o quadro de dados usando nomes de linhas de caracteres
Suponha que temos o seguinte quadro de dados em 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
Podemos usar a seguinte sintaxe para classificar as linhas no quadro de dados em ordem alfabética usando o atributo 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
As linhas são classificadas de A a Z com base no valor do nome da linha.
Você também pode usar o argumento descendente=TRUE para classificar de Z a 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
Exemplo 2: Classifique o quadro de dados usando nomes de linhas numéricos
Suponha que temos o seguinte quadro de dados em 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
Podemos usar a seguinte sintaxe para classificar as linhas no quadro de dados usando o atributo 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
Também poderíamos usar descendente=TRUE para classificar do maior para o menor:
#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
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns em R:
Como usar sort(), order() e Rank() em R
Como classificar por múltiplas colunas em R
Como classificar um quadro de dados por data em R