3 - Importando dados para o R

O primeiro passo para importarmos um arquivo para o R é fazer com que o mesmo “enxergue” a sua pasta de trabalho.

Como perguntar qual a pasta que o R está “enxergando” no momento?

#Descobrindo qual o diretório de trabalho que o R está "enxergando" no momento
getwd()

Caso não seja a pasta onde localiza-se o seu arquivo, podemos mudar essa pasta com a função setwd.

#Modificando o diretório de trabalho que o R está "enxergando" neste momento
setwd("PASSAR AQUI O CAMINHO DA SUA PASTA SEMPRE ENTRE ASPAS")

O caminho deve estar SEMPRE entre aspas e as barras devem ser invertidas (caso deseje usar a barra sem ser invertida é preciso duplicá-las).

Uma outra forma de modificarmos o diretório de trabalho é acessarmos o menu Session \(\rightarrow\) Set Working Directory \(\rightarrow\) Choose Directory.

Esse problema de mudanças de diretórios de trabalho serão pequenos, uma vez que adotaremos a prática de criação de projetos.

A seguir serão apresentados alguns pacotes para a importação de dados para o R.

3.1 - Pacote readr

Um pacote cujo objetivo é propiciar de modo rápido e amigável a importação de dados retangulares (como .txt, .csv, .tsv, .fwd).

As principais funções deste pacote para importação de dados são:

  • read_table - importa arquivos em que as colunas são separadas por um ou mais espaços em branco.
  • read_csv - importa aquivos delimitados por vírgula.
  • read_csv2 - importa arquivos separados por semicolunas (comum em países que usam a “,” como separador decimal)
  • read_tsv - importa arquivos separados por tabs.
  • read_delim - read_csv e read_tsv são casos particulares desta função. Ela te permite mais flexibilidade na importação de arquivos.

A seguir, vamos apresentar os principais argumentos da função read_delim:

  • file - o arquivo a ser importado;

  • delim - o caracter usado para separar as variáveis;

  • col_names - um argumento lógico indicando se o arquivo possui ou não os nomes das variáveis (default = TRUE);

  • na - qual a codificação usada para dado faltante (default = NA);

  • skip - número de linhas a serem puladas no momento da importação (default = 0);

  • locale - controla vários aspectos como decimal, enconding, entre outros.

Crie um projeto chamado Analise Seguro! Crie um script no projeto com o nome Script Analise.

Após especificarmos a pasta de trabalho, precisamos ativar o pacote readr e utilizarmos a função read_delim como a seguir.

#Ativando o pacote readr
library(readr)

#Importando o arquivo seguro saude.txt 
base = read_delim(file = "seguro saude.txt")

#Visualizando o arquivo
base
## Rows: 1338 Columns: 7
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: " "
## chr (1): fumante
## dbl (4): idade, sexo, num_dep, regiao
## num (2): imc, cobrancas
## 
## ℹ 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.
## # A tibble: 1,338 × 7
##    idade  sexo   imc num_dep fumante regiao  cobrancas
##    <dbl> <dbl> <dbl>   <dbl> <chr>    <dbl>      <dbl>
##  1    19     1 99999       0 Sim          4   16884924
##  2    18     2  3377       1 Não          3   17255523
##  3    28     2    33       3 Não          3    4449462
##  4    33     2 22705       0 Não          2 2198447061
##  5    32     2  2888       0 Não          2   38668552
##  6    31     1  2574       0 Não          3   37566216
##  7    46     1  3344       1 Não          3   82405896
##  8    37     1  2774       3 Não          2   72815056
##  9    37     2  2983       2 Não          1   64064107
## 10    60     1  2584       0 Não          2 2892313692
## # … with 1,328 more rows

Ao usarmos as funções do pacote readr para importarmos um arquivo, a primeira coisa que percebemos é que são apresentadas a forma como cada variável foi coletada. Ao pedirmos para visualizarmos o objeto, percebemos que sua classe é um tibble.

  • A importação foi realizada de maneira correta?

  • Avaliem a variável imc e cobrancas no arquivo original. O que tem de diferente dos valores apresentados na tela do R?

Claramente o arquivo acima apresenta problemas na importação, pois o indivíduo 1 apresenta IMC de 99999 e o indivíduo 2 de 3377.

Precisamos alimentar a função com toda informação necesária para que ela faça a importação de forma adequada. O arquivo possui as seguintes características:

  • possui extensão .txt,
  • 99999 foi usado como código para dado faltante,
  • , é o indicador de decimal.
#Importando o arquivo seguro saude.txt 
base = read_delim(file = "seguro saude.txt", #nome do arquivo com extensão entre aspas
                  na = "99999", #código usado para indicar dado faltante
                  locale = locale(decimal_mark = ",") #função que controla aspectos do arquivo como o decimal

#Visualizando o arquivo
base
## Rows: 1338 Columns: 7
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: " "
## chr (1): fumante
## dbl (6): idade, sexo, imc, num_dep, regiao, cobrancas
## 
## ℹ 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.
## # A tibble: 1,338 × 7
##    idade  sexo   imc num_dep fumante regiao cobrancas
##    <dbl> <dbl> <dbl>   <dbl> <chr>    <dbl>     <dbl>
##  1    19     1  NA         0 Sim          4    16885.
##  2    18     2  33.8       1 Não          3     1726.
##  3    28     2  33         3 Não          3     4449.
##  4    33     2  22.7       0 Não          2    21984.
##  5    32     2  28.9       0 Não          2     3867.
##  6    31     1  25.7       0 Não          3     3757.
##  7    46     1  33.4       1 Não          3     8241.
##  8    37     1  27.7       3 Não          2     7282.
##  9    37     2  29.8       2 Não          1     6406.
## 10    60     1  25.8       0 Não          2    28923.
## # … with 1,328 more rows