4.2 Ordenando dados

A função arrange do pacote dplyr é usada para ordenar as linhas de um data frame com base em uma ou mais colunas. O comando arrange permite que você organize seus dados de forma crescente ou decrescente, facilitando a análise e visualização dos dados.

Digamos que queremos ordenar nossa base de dados a partir da variável idade. Teremos o código abaixo:

dados%>%arrange(idade)
X status tempo_empresa moradia tempo_emprestimo idade estado_civil registros trabalho despesas renda ativos dividas valor_emprestimo preco_do_bem dif autonomos idadeQ
384 ruim 1 pais 48 18 solteira(o) não meio período 35 81 0 0 1150 1314 164 não Jovem adultos
1238 bom 1 própria 48 18 solteira(o) não meio período 45 111 7000 0 1100 1299 199 não Jovem adultos
1622 ruim 0 alugada 36 18 solteira(o) não meio período 40 51 0 0 500 500 0 não Jovem adultos
3712 ruim 1 pais 48 18 solteira(o) não meio período 45 95 4000 0 600 1472 872 não Jovem adultos
3913 ruim 0 alugada 36 18 solteira(o) sim outros 38 33 0 0 300 350 50 não Jovem adultos

Repare que os dados foram ordenados de acordo com a coluna idade, de baixo para cima. O comando desc, nos permite fazer o mesmo, em ordem decrescente:

dados%>%arrange(desc(idade))
X status tempo_empresa moradia tempo_emprestimo idade estado_civil registros trabalho despesas renda ativos dividas valor_emprestimo preco_do_bem dif autonomos idadeQ
16 bom 0 própria 24 68 casada(o) não fixo 75 131 4162 0 900 1186 286 não Idosos
18 bom 33 alugada 24 68 casada(o) não autônomo 65 200 5000 2000 600 1350 750 sim Idosos
119 bom 20 própria 24 66 casada(o) não fixo 45 143 10000 0 950 1370 420 não Idosos
298 bom 3 própria 18 66 casada(o) não outros 45 69 12000 0 500 1101 601 não Idosos
1932 bom 2 alugada 12 66 casada(o) não outros 51 60 20000 0 500 1504 1004 não Idosos

Digamos que queremos ordenar a análise que fizemos na seção anterior, sobre a média de idade e estado civil. Basta adicionar o comando arrange com o operador pipe %>%. Os resultados ordem a coluna média por ordem crescente de valores.

dados %>% 
  group_by(estado_civil) %>% 
  summarize(media=mean(idade, na.rm = T))%>%
  arrange(media)
## # A tibble: 6 × 2
##   estado_civil  media
##   <chr>         <dbl>
## 1 solteira(o)    27.8
## 2 <NA>           37  
## 3 separada(o)    38.0
## 4 divorciada(o)  38.7
## 5 casada(o)      39.6
## 6 viúva(o)       48.8

Podemos, também, ordenar os resultados por ordem alfabética, inserindo a variável estado_civil no comando arrange.

dados %>% 
  group_by(estado_civil) %>% 
  summarize(media=mean(idade, na.rm = T))%>%
  arrange(estado_civil)
## # A tibble: 6 × 2
##   estado_civil  media
##   <chr>         <dbl>
## 1 casada(o)      39.6
## 2 divorciada(o)  38.7
## 3 separada(o)    38.0
## 4 solteira(o)    27.8
## 5 viúva(o)       48.8
## 6 <NA>           37