7.10 Dados ordenados

Duas operações comuns em análise de dados são a ordenação e a classificação dados de um vetor.

A função sort() arranja os dados de um vetor numérico em ordem crescente ou descrescente (se argumento for especificado como decreasing = TRUE). Se o vetor for de caracteres, o arranjo segue a ordem alfabética dando precedência às letras em minúsculo.

sort(prec_alt)
#> mai jul ago set out fev dez jan 
#>   0  21  42 100 120 200 208 250
sort(prec_alt, decreasing = TRUE)
#> jan dez fev out set ago jul mai 
#> 250 208 200 120 100  42  21   0
sort(names(prec_alt))
#>  [1] "abr" "ago" "dez" "fev" "jan" "jul" "jun" "mai" "mar" "nov" "out" "set"

A ordem de classificação de cada elemento de um vetor numérico é obtida com a função order():

prec_alt
#> jan fev mar abr mai jun jul ago set out nov dez 
#> 250 200  NA  NA   0  NA  21  42 100 120  NA 208
order(prec_alt)
#>  [1]  5  7  8  9 10  2 12  1  3  4  6 11

O resultado indica que o 5º elemento de prec_alt é o menor valor e o 1º elemento é o de maior valor. Isso pode ser facilmente verificado passando este resultado na indexação da prec_alt.

# equivalente a sort()
prec_alt[order(prec_alt)]
#> mai jul ago set out fev dez jan mar abr jun nov 
#>   0  21  42 100 120 200 208 250  NA  NA  NA  NA

Nota-se então, que por padrão na saída da order() os elementos faltantes são colocados nas últimas posições (no exemplo: 3, 4, 6, 11). Para remover os casos faltantes especificamos o argumento na.last = NA.

order(prec_alt, na.last = NA)
#> [1]  5  7  8  9 10  2 12  1