5. Avaliando a completude dos dados
Nesta etapa, vamos conhecer o preenchimento dos campos no registro da
Ficha de Notificação Individual (FIN) do Sinan Net. Ao final deste
tópico você será capaz de analisar a presença de variáveis em branco ou
nulas, utilizando as seguintes funções do R
:
is.na()
, sum()
e n()
.
Enquanto profissional de vigilância em saúde você deve estar acostumado a manipular formulários que têm campos de preenchimento em branco ou ignorados. Na epidemiologia o indicador de completude de uma variável é calculado a partir da proporção de campos preenchidos em relação ao total dos registros, em percentual.
Para visualizar de forma simples estes registros em uma coluna, vamos
continuar utilizando a tabela criada a partir do banco de dados
{NINDINET.dbf
}, disponível no Ambiente Virtual do curso.
Este banco foi armazenado no objeto {base
} e agora vamos
avaliar a completude da variável epidemiológica Raça/cor
(CS_RACA
).
Para isso utilizaremos a função summarise()
, pois
estamos resumindo algumas características da variável. Não se preocupe
com o script, explicaremos mais adiante o passo a passo
realizado.
Acompanhe o código abaixo e replique-o em seu
RStudio
:
base |>
# Utilizando a função `summarise()` para criar novas colunas de síntese
summarise(
# Criando uma coluna com a soma de todos os registros da variável raça/cor
# devidamente preenchidos
total_completo = sum(!is.na(CS_RACA)),
# Criando uma coluna com o total de registros na tabela
total_registros = n(),
# Criando uma coluna com a soma de registros com a variável raça/cor em branco
total_missing_raca = sum(is.na(CS_RACA)),
# Criando uma coluna de porcentagem de completude (preenchimento)
taxa_completude = (total_completo / total_registros) * 100
)
#> total_completo total_registros total_missing_raca taxa_completude
#> 1 19326 27621 8295 69.9685
Observe em seu painel Console ou output, que foram retornadas quatro colunas:
- Em
total_completo
é indicado o número total de registros para a variávelCS_RACA
que não estão em branco (isto é, são diferentes deNA
). - Em
total_registros
é indicado o número total de registros, independentemente se estão preenchidos ou não. - Em
total_missing_raca
é indicado o número de registros em branco apenas para a variávelCS_RACA.
- Por fim,
taxa_completude
mostra a porcentagem de casos completos em relação ao total de casos registrados.
Vamos entender agora como conseguimos estes resultados, detalhando as funções:
A função is.na()
indica em termos de verdadeiro/falso
(TRUE
/FALSE
) quais registros estão em branco
(isto é, são iguais a NA
). Já a operação
!is.na()
calcula exatamente o oposto: quais registros estão
preenchidos, isto é, diferentes de NA
. Isto é indicado pelo
operador (!
) (ponto de exclamação), que inverte o resultado
dos valores de verdadeiro e falso (TRUE
e
FALSE
). Ao combinarmos estas funções com a função de soma
(sum()
), podemos calcular a soma do número de registros que
se enquadram nos critérios avaliados.
Já a taxa de completude em porcentagem é calculada pela razão entre o total de registros preenchidos pelo total de registros, multiplicado por 100.

É possível realizar a análise de completude de variáveis utilizando
outros pacotes no R
. Um pacote muito utilizado é o
skimr
. Nele, há funções muito interessantes para
verificação do preenchimento de variáveis, como:
n_complete
, que verifica o total de células preenchidas de uma variável;n_missing
, que verifica o número de células em branco; ecomplete_rate
, que faz uma razão entre o total células preenchidas pelo total de registros.
No exemplo abaixo vamos verificar o preenchimento da variável
Raça/cor (CS_RACA
), utilizada anteriormente, combinando a
função summarise()
com as funções do pacote
skimr
. Para isso, rode o seguinte código:
base |>
# Utilizando a função `summarise()` para criar novas
# colunas de síntese
summarise(
# Criando uma coluna de total de registros com a
# variável raça/cor devidamente preenchida
total_completo = n_complete(CS_RACA),
# Criando uma coluna de total de registros da
# variável raça/cor em branco
total_na = n_missing(CS_RACA),
# Criando uma coluna de taxa de completude
taxa_completude = complete_rate(CS_RACA) * 100
)
#> total_completo total_na taxa_completude
#> 1 19326 8295 69.9685
Veja que foi possível conhecer os valores nulos ou em brancos com
poucas linhas de comando. Agora você já pode realizar seus relatórios de
completitude dos bancos de dados sem dificuldades utilizando o
software R
.
5.1 Renomeando valores
Algumas variáveis nos sistemas de informações possuem uma categoria chamada “Ignorado”. Essa categoria se refere a dados que, por alguma eventualidade, não foram coletados no ato do preenchimento da notificação e por serem de preenchimento obrigatório são completados desta forma. Comumente, nos sistemas de informações, essa categoria é definida com o código 9 ou 99. Vejamos na Figura 3 um recorte da Ficha de Notificação Individual (FIN).
Figura 3: Início da Ficha de Notificação Individual (FIN).
Observe que em todos os campos de preenchimento em múltipla escolha é possível selecionar “Ignorado”. Uma ação para garantir a consistência da análise de seus dados é realizar o agrupamento dos valores que estão nulos ou em branco (missing, em inglês) com os itens ignorados. Para esta etapa, realizamos a codificação de todos os valores com o código 9.
Para esta etapa, utilizaremos a função replace_na()
do
pacote tidyr
para realizar a substituição dos valores em
branco ou nulos por 9, combinada com a função mutate()
.
Nesta tarefa, vamos permanecer manipulando a variável Raça/cor
(CS_RACA
) do objeto {base
}, criada a partir do
banco de dados {NINDINET.dbf
}. Vejamos primeiro a contagem
das categorias utilizando o seguinte comando em seu console:
base |>
# Contabilizando o número de registros conforme as categorias de preenchimento
# da variável "CS_RACA"
count(CS_RACA)
#> CS_RACA n
#> 1 1 5298
#> 2 2 1792
#> 3 3 88
#> 4 4 3799
#> 5 5 40
#> 6 9 8309
#> 7 NA 8295
Perceba que há 8.309 registros com a variável Raça/cor preenchidos
como Ignorado
(código 9) e 8.295 com
<NA>
nulo ou em branco. Agora vamos agrupar o
Ignorado (indicado pelo valor 9
) com NA
utilizando a função replace_na()
. O primeiro argumento
desta função é a coluna ao qual queremos aplicar a transformação, e o
segundo argumento (replace
) indica qual valor queremos que
substitua o valor NA
. Em nosso exemplo, queremos que seja
substituído pelo valor 9
.
Desta forma, execute os comandos do script abaixo em seu
RStudio
:
base |>
# Transformando os valores em branco em 9 na coluna "CS_RACA"
mutate(CS_RACA = replace_na(CS_RACA, replace = 9)) |>
# Contabilizando o número de registros conforme as categorias de preenchimento
# da variável "CS_RACA"
count(CS_RACA)
#> CS_RACA n
#> 1 1 5298
#> 2 2 1792
#> 3 3 88
#> 4 4 3799
#> 5 5 40
#> 6 9 16604
Encontramos 16.604 registros contabilizados como 9, ou seja,
Ignorado
e NA
. Esse valor é igual aos 8.309
registros somados aos 8.295. Tente fazer a mesma operação com outras
variáveis do banco de dados e renomeie com valores nulos!

É também possível que você necessite transformar os valores
codificados como Ignorado
em NA
. Para isso,
você deverá utilizar a função na_if()
do pacote
dplyr
. O primeiro argumento desta função também deve
indicar a coluna que queremos aplicar a transformação, enquanto o
segundo indica qual valor queremos que seja convertido em
NA
.
Execute o código e veja abaixo como ficaria no exemplo anterior com a variável Raça/cor:
base |>
# Transformando os valores codificados como 9 em NA,
# na coluna "CS_RACA"
mutate(CS_RACA = na_if(CS_RACA, "9")) |>
# Contabilizando o número de registros conforme as
# categorias de preenchimento da variável "CS_RACA"
count(CS_RACA)
#> CS_RACA n
#> 1 1 5298
#> 2 2 1792
#> 3 3 88
#> 4 4 3799
#> 5 5 40
#> 6 NA 16604
Agora você tem 16.604 registros classificados como
<NA>
. Foi fácil, não é mesmo?!