Você já conhece o skimr?
O skimr é um pacote que nos fornece medidas resumo de variáveis de uma base de dados de interesse. Ele pode ser visto como uma alternativa mais completa para a função summary() do R Base.
Além de incluir algumas informações a mais sobre cada coluna (como número de missings, por exemplo), ele lida com todos os tipos de dados, não só numéricos, fornecendo um conjunto diferente de medidas resumo a depender do tipo da coluna.
Gostou? Vamos dar uma olhada em como ele funciona!
skimr
Primeiramente, vamos instalar e carregar o pacote skimr
install.packages("skimr")
library(skimr)
## Warning: package 'skimr' was built under R version 4.1.3
Agora, vamos aplicar a função skim
em uma base de dados de interesse. No caso, estamos usando a base dados_starwars
do pacote dados
dados::dados_starwars |> skim()
Name | dados::dados_starwars |
Number of rows | 87 |
Number of columns | 14 |
_______________________ | |
Column type frequency: | |
character | 8 |
list | 3 |
numeric | 3 |
________________________ | |
Group variables | None |
Variable type: character
skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
---|---|---|---|---|---|---|---|
nome | 0 | 1.00 | 3 | 21 | 0 | 87 | 0 |
cor_do_cabelo | 5 | 0.94 | 5 | 20 | 0 | 11 | 0 |
cor_da_pele | 0 | 1.00 | 4 | 28 | 0 | 31 | 0 |
cor_dos_olhos | 0 | 1.00 | 4 | 19 | 0 | 14 | 0 |
sexo_biologico | 4 | 0.95 | 5 | 12 | 0 | 4 | 0 |
genero | 4 | 0.95 | 8 | 9 | 0 | 2 | 0 |
planeta_natal | 10 | 0.89 | 4 | 14 | 0 | 48 | 0 |
especie | 4 | 0.95 | 3 | 15 | 0 | 37 | 0 |
Variable type: list
skim_variable | n_missing | complete_rate | n_unique | min_length | max_length |
---|---|---|---|---|---|
filmes | 0 | 1 | 24 | 1 | 7 |
veiculos | 0 | 1 | 11 | 0 | 2 |
naves_espaciais | 0 | 1 | 17 | 0 | 5 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
altura | 6 | 0.93 | 174.36 | 34.77 | 66 | 167.0 | 180 | 191.0 | 264 | ▁▁▇▅▁ |
massa | 28 | 0.68 | 97.31 | 169.46 | 15 | 55.6 | 79 | 84.5 | 1358 | ▇▁▁▁▁ |
ano_nascimento | 44 | 0.49 | 87.57 | 154.69 | 8 | 35.0 | 52 | 72.0 | 896 | ▇▁▁▁▁ |
Veja que a saída da função skim
mostra uma visão geral da base de dados, nos dando informações como número de linhas, número de colunas, e os tipos das colunas.
Ela fornece também informações individuais sobre cada coluna da base, separando as colunas por tipo: cada tipo nos dá um conjunto diferente de estatísticas, que façam sentido para aquele tipo de dado.
Além disso, se salvarmos a saída da função em um objeto, podemos obter um data frame no qual cada linha é referente a uma coluna da base de dados.
Isso é muito útil quando estamos lidando com bases que tem muitas colunas.
info_skim <- dados::dados_starwars |>
skim() |>
tibble::as_tibble()
Podemos, por exemplo, ordenar pelas variáveis que tem maior número de NA:
info_skim |>
dplyr::arrange(desc(n_missing))
## # A tibble: 14 x 20
## skim_type skim_variable n_missing complete_rate character.min character.max
## <chr> <chr> <int> <dbl> <int> <int>
## 1 numeric ano_nascimento 44 0.494 NA NA
## 2 numeric massa 28 0.678 NA NA
## 3 character planeta_natal 10 0.885 4 14
## 4 numeric altura 6 0.931 NA NA
## 5 character cor_do_cabelo 5 0.943 5 20
## 6 character sexo_biologico 4 0.954 5 12
## 7 character genero 4 0.954 8 9
## 8 character especie 4 0.954 3 15
## 9 character nome 0 1 3 21
## 10 character cor_da_pele 0 1 4 28
## 11 character cor_dos_olhos 0 1 4 19
## 12 list filmes 0 1 NA NA
## 13 list veiculos 0 1 NA NA
## 14 list naves_espaciais 0 1 NA NA
## # ... with 14 more variables: character.empty <int>, character.n_unique <int>,
## # character.whitespace <int>, list.n_unique <int>, list.min_length <int>,
## # list.max_length <int>, numeric.mean <dbl>, numeric.sd <dbl>,
## # numeric.p0 <dbl>, numeric.p25 <dbl>, numeric.p50 <dbl>, numeric.p75 <dbl>,
## # numeric.p100 <dbl>, numeric.hist <chr>
Você pode ler mais sobre as funcionalidades do skimr nesse vignette