description: | Compartilhando o código em R abstract: | Neste tutorial, você aprenderá como utilizar o pacote DataMaid no ambiente R para a preparação de dados, uma etapa crucial na análise de dados. O DataMaid é uma ferramenta poderosa que auxilia na verificação e limpeza de dados, fornecendo um documento para análise da estrutura dos dados. Ele é capaz de identificar diversos tipos de erros e inconsistências nos dados, como classes incorretas, duplicatas, inconsistências de capitalização, valores improváveis, espaços em branco, indicadores de falta não reconhecidos e muito mais. author: Vitor Marinho affiliation: Fundação João Pinheiro/Cedeplar Caio Gonçalves
knitr::opts_chunk$set(message = F, warning = F)
Contato: [email protected]
Nesta oficina, aprenderemos como usar o pacote DataMaid no R para uma etapa prévia a crítica de dados: a preparação dos dados.
Tutorial disponível: https://github.com/vitor-marinho-fjp/Critica_Datamaid
O que é o DataMaid?
Um assistente de limpeza de dados capaz de fornecer um documento para ser lido e avaliado por uma pessoa. Uma ferramenta para auxiliar na lógica/verificação de erros tanto em colunas quanto em linhas. [@petersen2019]
-
Classe incorreta
-
Duplicatas
-
Consistência de capitalização (Belo Horizonte vs Belo horizonte)
-
Valor improvável (peso = 1000, idade = 201)
-
Espaços em branco
-
Indicadores de falta não reconhecidos
-
Quantidade de faltantes (NA)
-
Observações/categorias únicas com contagem baixa
-
Dados imprecisos (data de falecimento antes da data de nascimento)
{alt="Fonte: Wickham & Grolemund (2017)."}
Foco nos dois primeiros passos: Import → Tidy
### Instalação e Carregamento do Pacote
# Lista de pacotes necessários
pacotes <- c('dataMaid', 'tidyverse', 'readxl', 'gt')
# Verifica se os pacotes estão instalados e instala se necessário
install.packages(setdiff(x = pacotes,
y = rownames(installed.packages())))
# Carrega os pacotes
lapply(X = pacotes,
FUN = library,
character.only = TRUE)
Documentação:
vignette("extending_dataMaid")
Disponível em: base_dados{.uri}
dados_datamaid <- read_excel("dados/dados_datamaid.xlsx")
dados_datamaid%>%
head(5) %>%
gt()
A função makeDataReport
produz um relatório de visão geral dos dados em que resume o conteúdo do conjunto de dados e sinaliza possíveis problemas. Esses potenciais erros são identificados executando um conjunto de verificações de validação específicas da classe, de modo que diferentes verificações sejam realizadas em diferentes tipos de variáveis. As etapas de verificação podem ser personalizadas de acordo com a entrada do usuário e/ou tipo de dados da variável inserida
Para cada variável, um conjunto de funções de pré-verificação (controladas pelo argumento preChecks) é executado primeiro e depois uma bateria de funções é aplicada dependendo da classe da variável.
makeDataReport(dados_datamaid, replace=TRUE, output = "html")
Além da análise inicial, você pode criar regras personalizadas para a análise inicial dos dados.
Por exemplo, podemos verificar a variável S_TXBRUTAMORT
Trace a distribuição de uma variável.
standardVisual(dados_datamaid$S_TXBRUTAMORT, "Taxa bruta de mortalidade")
standardVisual(dados_datamaid$S_TXMOISQCOR45A59, "Taxa de mortalidade por doenças isquêmicas do coração na população de 45 a 59 anos")
Pode-se criar funções que seja do interesse a verificação. Por exemplo, um função para ocorrências de valores iguais a zero: countZeros()
Criando a função:
countZeros <- function(v, ...) {
val <- length(which(v == 0))
summaryResult(list(feature = "No. zeros", result = val, value = val))
}
countZeros(dados_datamaid$S_TXMOHOMI15A29)
uma outra função útil seria a contagem dos valores atípicos (outliers) em uma variável numérica v
usando a abordagem do intervalo interquartil (IQR) com um fator de limiar (threshold):
#Função para Identificar Outliers:
countOutliers <- function(v, threshold = 1.5) {
q1 <- quantile(v, 0.25)
q3 <- quantile(v, 0.75)
iqr <- q3 - q1
lower_bound <- q1 - threshold * iqr
upper_bound <- q3 + threshold * iqr
val <- length(which(v < lower_bound | v > upper_bound))
summaryResult(list(feature = "No. outliers", result = val, value = val))
}
Além dessas, outras possibilidades são possíveis, por exemplo, criar uma função que calcule estatísticas (média, mediana, etc.) para uma variável numérica, segmentadas por grupos de uma variável categórica. Isso pode ser útil para entender as diferenças entre grupos:
calculateStatsByGroup <- function(data, numeric_var, categorical_var) {
stats_by_group <- data %>%
group_by({{categorical_var}}) %>%
summarise(
Mean = mean({{numeric_var}}, na.rm = TRUE),
Median = median({{numeric_var}}, na.rm = TRUE),
SD = sd({{numeric_var}}, na.rm = TRUE)
)
summaryResult(list(
feature = paste("Summary Statistics by", as_label(categorical_var)),
result = stats_by_group,
value = NULL
))
}
A inclusão das funções criadas anteriormente são realizadas da seguinte maneira:
makeDataReport(dados_datamaid, summaries = setSummaries(
character = defaultCharacterSummaries(add = c("countZeros", "countOutliers")),
factor = defaultFactorSummaries(add = c("countZeros", "countOutliers")),
labelled = defaultLabelledSummaries(add = c("countZeros", "countOutliers")),
numeric = defaultNumericSummaries(add = c("countZeros", "countOutliers")),
integer = defaultIntegerSummaries(add = c("countZeros", "countOutliers")),
logical = defaultLogicalSummaries(add = c("countZeros", "countOutliers"))
), replace = TRUE, output = "html")
Funções do DataMaid
name | descrição |
---|---|
identifyCaseIssues | Identificar problemas |
identifyLoners | Identificar variáveis com < 6 obs. |
identifyMissing | Identificar valores ausentes mal codificados |
identifyNums | Identificar variáveis numéricas ou inteiras classificadas incorretamente |
identifyOutliers | Identificar outliers |
identifyOutliersTBStyle | Identify outliers (Turkish Boxplot style) |
identifyWhitespace | Identifique espaços em branco prefixados e sufixados |
isCPR | Identify Danish CPR numbers |
isEmpty | Verifique se a variável contém apenas um único valor |
isKey | Verifique se a variável é uma chave |
isSingular | Verifique se a variável contém apenas um único valor |
isSupported | Verifique se a classe da variável é suportada pelo dataMaid. |
Documentação DataMaid - https://github.com/ekstroem/DataMaid
Documentação DataMaid : https://cran.r-project.org/web/packages/dataMaid/index.html
vignette("extending_dataMaid")
Marinho,V.; Gonçalves, C. Preparação de Dados: Pacote DataMaid. Tutorial Transformação Digital. Fundação João Pinheiro, n. 2, 2023. Disponível em: https://rpubs.com/fjp/datamaid.