Capítulo 11 Checagem dos dados

No tutorial abaixo vamos usar dados de avistamento de aves em fisionomias de cerrado. Baixem o arquivo contendo esses dados (https://github.com/LABOTAM/IntroR/blob/main/dados/aves_cerrado.csv) para a sua pasta de trabalho.

Vamos praticar neste tutorial o uso de funções que nos mostram a estrutura e resumo dos dados. Já vimos como utilizar essas funções na parte I deste livro.

  • str() - mostra a estrutura do objeto dos dados;
  • head() e tail()- mostra a cabeça ou a cauda da sua tabela de dados, respectivamente;
  • summary() - faz um resumo de todas as variáveis nos seus dados.

Vamos começar importando os dados ao R:

## Lendo a planilha com read.table
avesc <- read.table("aves_cerrado.csv", row.names = 1, header = T, sep = ";", dec = ",", as.is = T, na.strings = c("NA", "", "NULL"))

Repare no argumento na.strings da função read.table(). Ele é importante na importação de dados pois garante a codificação de valores ausentes usando a constante lógica NA do R. Se você não definir isso, o padrão é reconhecer apenas células que tenham o texto NA como valor faltante. Veja também o uso do argumento as.is = TRUE, que indica que não se deve converter colunas de texto em fatores (ou você pode usar o argumento stringsAsFactors para isso; este mesmo argumento é utilizado também na função data.frame()). Vamos ver as primeiras 10 linhas do objeto avesc:

head(avesc, 10)
fisionomia urubu carcara seriema
Ce1 Ce 5 18 6
Ce2 Ce 7 7 6
Ce3 Ce 5 14 4
Ce4 Ce 3 12 5
Ce5 Ce 4 16 4
Ce6 Ce NA 20 NA
Ce7 Ce 6 19 4
Ce8 Ce 4 21 10
Ce9 Ce 2 11 6
Ce10 Ce 5 9 7

Vamos criar uma cópia para usarmos depois.

aves2 <- avesc

É sempre bom verificar se os dados foram importados corretamente. É sempre um bom procedimento checarmos as dimensões do objeto com a função dim(), primeiras e últimas linhas e colunas do objeto com funções head() e tail() respectivamente

dim(avesc) # a dimensao do objeto (linhas e colunas)
## [1] 60  4
head(avesc, 3) # a cabeca do objeto (tres primeiras linhas)
fisionomia urubu carcara seriema
Ce1 Ce 5 18 6
Ce2 Ce 7 7 6
Ce3 Ce 5 14 4
tail(avesc, 3) # a cauda do objeto (tres ultimas linhas)
fisionomia urubu carcara seriema
CL18 CL 12 6 7
CL19 CL 18 5 4
CL20 CL 19 4 4
avesc[nrow(avesc), ] # ultima linha
fisionomia urubu carcara seriema
CL20 CL 19 4 4

Parece que está tudo certo! Vamos checar a estrutura do objeto:

# mostra a estrutura do data.frame
str(avesc)
## 'data.frame':    60 obs. of  4 variables:
##  $ fisionomia: chr  "Ce" "Ce" "Ce" "Ce" ...
##  $ urubu     : int  5 7 5 3 4 NA 6 4 2 5 ...
##  $ carcara   : int  18 7 14 12 16 20 19 21 11 9 ...
##  $ seriema   : int  6 6 4 5 4 NA 4 10 6 7 ...

Reparem que há uma variável de texto (chr) e três variáveis de números inteiros (int). Próximo passo é sempre checar um sumário estatístico das variáveis presentes no objeto usando a função summary():

# mostra um resumo da variacao nas colunas
summary(avesc)
fisionomia urubu carcara seriema
Length:60 Min. : 2.00 Min. : 3.00 Min. : 2.000
Class :character 1st Qu.: 7.00 1st Qu.: 5.50 1st Qu.: 4.000
Mode :character Median :12.00 Median : 9.00 Median : 5.000
NA Mean :11.93 Mean :10.25 Mean : 5.345
NA 3rd Qu.:16.50 3rd Qu.:14.00 3rd Qu.: 6.000
NA Max. :22.00 Max. :24.00 Max. :12.000
NA NA’s :1 NA’s :1 NA’s :2

Há indicação de presença de valores NA nas variáveis numéricas, que são valores faltantes.