Importando dados

Uma tarefa importante na rotina de análise de dados no R é a importação adequada de nossos dados para o ambiente de trabalho. Essa etapa pode ser simples, mas também pode exigir a definição de alguns parâmetros mais específicos que podem depender do banco, ou do sistema operacional.

Caminhos

Para toda tarefa de importação é importante definirmos o caminho dos arquivos, ou seja, o local no computador onde estão os dados. Podemos especificar esse caminho de duas formas:

  • Caminho absoluto: Mostra a localização do arquivo desde a pasta primária do computador. Independente de onde seja seu working directory no R, você conseguirá acessar esse arquivo utilizando o caminho absoluto. Geralmente são do tipo: C:/Usuarios/... (Windows), ou home/usuario/... (Linux), ou seja, especificam a localização desde as partições mais básicas. Contudo, não recomenda-se a utilização de caminhos absolutos pois serão sempre dependentes da sua máquina e sua organização, ou seja, o código não fica reprodutível.
  • O caminho relativo já é dependente do working directory no R, que é onde você está trabalhando no momento. Todo caminho relativo irá partir dele. Você pode descobrir seu local de trabalho (working directory) no R através da função getwd():
getwd()
## [1] "/home/joao/Documents/DOEPI/monitoria-livro-R"

Ou seja, se você quiser acessar um arquivo que está na mesma pasta que seu local de trabalho, basta utilizar o nome do arquivo.

De forma complementar, podemos alterar o ambiente de trabalho com a função setwd():

# mudando o diretório para a pasta "IntroEpi24":
setwd("/home/joaomorais/Documentos/Outros/IntroEpi24/")

A partir daí, o R enxergará naturalmente todos os arquivos dentro dessa pasta.

Uma forma de verificar o que o R está “enxergando” é através do comando dir():

dir()
## character(0)

Projetos

Uma boa prática em termos de reprodutibilidade e portabilidade dos trabalhos feitos em R é a utilização de Projetos. Ao criar um Projeto no R, ele localiza-se dentro de uma pasta onde ficam organizados todos os arquivos comumente utilizados para as funções daquele projeto. Isso facilita muito o compartilhamento de trabalhos, pois os caminhos existentes a partir da pasta do projeto serão comum para todos.

Lendo Arquivos

O pacote R tem nativo diversas funções para leitura de arquivos e carregamento para o ambiente de trabalho, as quais geralmente se iniciam com read.*(), ou seja: read.csv(), read.table(), etc. Basta passar o caminho para o arquivo na função.

Vamos supor que temos um arquivo chamado exemplo.csv na pasta de nosso projeto, e iremos importá-lo:

exemplo <- read.csv("exemplo.csv")
exemplo
##    ID sexo idade peso altura
## 1   1    M    41 92.7   1.74
## 2   2    F    52 71.9   1.73
## 3   3    F    49 38.5   1.50
## 4   4    F    21 66.1   1.67
## 5   5    M    68 49.3   1.57
## 6   6    M    48 51.5   1.51
## 7   7    F    37 77.6   1.54
## 8   8    M    52 67.1   1.88
## 9   9    F    31 16.9   1.89
## 10 10    M    35 29.6   1.76
## 11 11    M    37 55.8   1.61
## 12 12    M    55 76.3   1.76
## 13 13    M    54 73.5   1.44
## 14 14    M    34 69.5   1.53
## 15 15    M    62 58.9   1.46
## 16 16    M    60 19.5   1.76
## 17 17    M    42 75.5   1.35

Pode ser que na importação o R não reconheça as colunas de forma adequada, e um problema comum é e a especificação do delimitador utilizado no csv. O arquivo csv pode ser separado por vírgulas, ponto e vírgula, tabulações, etc.

Podemos especificar o delimitador com o argumento sep:

exemplo2 <- read.csv("exemplo.csv", sep = ";")

A função read.csv2() é adaptada a sistemas que utilizam vírgula como separador decimal e portanto o ponto e vírgula como separador do arquivo .csv. Dessa forma, acaba sendo mais útil para muitos arquivos gerados no Brasil.

# ja usa por padrao o separador ponto e virgula
exemplo2 <- read.csv2("exemplo.csv")

Pacote {readr}

O pacote readr possui funções semelhantes às vistas anteriormente, mas com funcionalidades úteis para checar a estrutura dos dados ao importá-los:

library(readr)
exemplo <- read_csv("exemplo.csv")
## Rows: 17 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): sexo
## dbl (4): ID, idade, peso, altura
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Perceba que a saída do comando já fornece informações úteis sobre o tipo dos dados (quais colunas são texto, ou numéricas), assim como o número de linhas e colunas importados, o que facilita a verificação de possíveis erros na leitura dos dados.