O pacote validate destina-se a fazer a verificação de seus dados de foma fácil e reprodutível. O pacote permite testar seus dados contra regras predefinidas de forma direta ou através de conjuntos de regras importadas de arquivos estruturados ou de formato livre Desta forma, permite-se ao auditori investigar e visualizar os resultados de uma etapa de validação de dados.
Existem alguns substantivos relacionados à infra-estrutura oferecida pelo validar:
Existe um verbo denominado:
confront: avalia a validação das regras no contexto de um ou mais conjunto de dados
Aqui está um exemplo demonstrando o fluxo de trabalho típico
data(women)
summary(women)
head(women)
O processo de validação de dados visa verificar se um conjunto de dados reúne presunções ou expectativas coincidem com os dados analisados. Através do pacote validate isso fica mais rápido e fácil de verificar. Vejamos:
install.packages("validate", repos="https://cloud.r-project.org")
library(validate)
Vamos construir uma regra de validação para ser aplicada no data frame women:
cf <- check_that(women, height > 0, weight > 0, height/weight > 0.5)
summary(cf)
O check_that retorna um objeto que contém todos os tipos de informações sobre os resultados da validação.A maneira mais fácil para verificar os resultados é através da função summary que irá retornar um data frame com as seguintes informações:
Quantos dados itens foram verificados contra cada regra Quantos itens passaram, falharam ou resultaram em NA Se a seleção resultou em um erro (não pôde ser executada) ou deu um erro A expressão que na verdade foi avaliada para executar a verificação.
Esta mesma informação pode ser vista graficamente
barplot(cf,main="Controles sobre o conjunto de dados - Women")
São usados para armazenar, investigar e manipular o conjunto de regras
v <- validator(height > 0, weight > 0, height/weight > 0)
v
O objeto de validação armazena a regra e a associa nomes a ela para futura referência. Para verificar isso, basta que confrontemos os dados com as regras de validação que definimos:
cf <- confront(women,v)
cf
O objeto cf contém os resultado do dado verificado em women contra o que se definiu em v. O fato de não se ter nem avisos(warnings) nem erros indica que cada regra pôde ser avaliada com sucesso.
Agora, suponha que esperamos que o IMC (peso dividido pela altura ao quadrado) de cada item deve ser inferior a 23. Precisamos expressar o peso em quilogramas e a altura em metros, o IMC será:
$ \begin{equation} IMC = \frac{peso\times0.45359}{(altura\times0.0254)^2} \end{equation} $
Além disso, suponha que nós suspeitamos que o IMC médio está entre 22 e 22,5. Vamos criar outro objeto validador que primeiro calcula o IMC e depois testar se a valores de IMC de acordo com nossa suspeita.
v <- validator(
IMC := (weight*0.45359)/(height*0.0254)^2
, height > 0
, weight > 0
, IMC < 23
, mean(IMC) > 22 & mean(IMC) < 22.5
)
v
A verificação fica fácil agora:
cf <- confront(women,v)
summary(cf)
O resultado do confrontamento de um objeto de validação com um conjunto de dados é um objeto de classe confrontation
Por padrão os agregados são produzidos pela regra.
cf <- check_that(women, height>0, weight>0,height/weight < 0.5)
aggregate(cf)
Para agregar por registro use by="record"
head(aggregate(cf,by='record'))
Os resultados agregados podem ser classificados automaticamente. Os registros com mais violações ou regras que mais violaram são ordenadas pelos maiores valores.
sort(cf)
Os objetos de confrontamento podem ser filtrados com um único [], como os vetores, a fim de obter um sub-objeto somente referente a regra selecionada.
summary(cf[c(1,3)])
Por padrão, todos os erros e avisos são detectados quando as regras de validação são confrontadas com dados. Este pode ser desligado, definindo a opção raise para "errors" ou "all".
v <- validator(heite > 0, weight>0)
summary(confront(women, v))
Enquanto aqui ele é gerado imediatamente
confront(women, v, raise='all')
Ele armazenam um conjunto de regras, opcionalmente com alguns metadados por regra. Atualmente, as funções a seguir podem ser usadas para obter ou definir metadados:
Os nomes das regras podem ser definidos via linha de comando, ao definir um objeto do validador.
v <- validator(rat = height/weight > 0.5, htest=height>0, wtest=weight > 0)
names(v)
Tente também:
names(v)[1] <- "ratio"
v
Algumas informações gerais são obtidas com: summary
summary(v)
O número de regras pode ser obtido via length
length(v)
Com variables é posssível obter as variáveis que ocorrem por regra, ou sobre todas as regras.
variables(v)
variables(v,as="matrix")
O validador de objetos pode ser obtido via:
v[c(1,3)]
v['ratio','wtest']
Ou para retornar um único valor
v[[1]]