Importação

Introdução

Nesta seção, vamos introduzir os principais pacotes para importar dados para o R. Mostraremos como importar dados de arquivos de texto e de planilhas do excel.

Antes de começarmos, vale a pena tocarmos num ponto importante. As funções de importação do tidyverse carregam os dados em tibbles, que diferem da classe data.frames usual em dois pontos importantes:

  • imprime os dados na tela de maneira muito mais organizada, resumida e legível; e

  • permite a utilização de list-columns.

Se você não estiver familiarizado com o conceito de list-columns, não se preocupe. Trataremos melhor do assunto no tópico sobre funcionais.

Importando arquivos de texto

Para importar arquivos de texto para R, como .txt ou .csv, utilizaremos o pacote readr.

Como exemplo, utilizaremos uma base de filmes do IMDB, gravada em diversos formatos. Os arquivos podem ser encontrados neste link.

library(readr)

imdb_csv <- read_csv(file = "imdb.csv")
imdb_txt <- read_delim(file = "caminho-para-o-arquivo/imdb.txt", delim = " ")

Repare que o argumento file= representa o caminho até o arquivo. Se o arquivo a ser lido não estiver no diretório de trabalho da sua sessão, você precisa especificar o caminho até o arquivo. O argumento delim= indica qual caracter separa cada coluna no arquivo de texto.

Exercício relâmpago! Descubra qual a diferença entre as funções “read_csv()” e “read_csv2()?”.

Para a maioria das funções read_, existe uma respectiva função write_. Essas funções servem para salvar bases em um formato específico de arquivo. Além do nome do arquivo a ser criado, você também precisa passar o objeto que será gravado. Repare nos exemplos abaixo que você precisa especificar a extensão do arquivo corretamente.

write_csv(x = mtcars, path = "mtcars.csv")
write_delim(x = mtcars, delim = " ", path = "mtcars.txt")

Também é possível salvar objetos, como data.frames em um tipo especial de arquivos, o .rds. A vantagem dessa extensão é guardar a estrutura dos dados salvos, como a classe das colunas de um data.frame. Além disso, é uma boa alternativa para lidar com grandes bancos de dados, já que arquivos .rds serão bem mais compactos do que arquivos Excel.

imdb_rds <- read_rds(path = "imdb.rds")
write_rds(mtcars, path = "mtcars.rds")

Importando arquivos do Excel

O pacote readxl contém funções para ler dados de arquivos do Excel, como .xls e xlsx.

readxl::read_xls(path = "imdb.xls")
readxl::read_xlsx(path = "imdb.xlsx")

A funçao read_excel() auto detecta a extensão do arquivo.

read_excel(path = "imdb.xls")
read_excel(path = "imdb.xlsx")

SQL

Para importar bases do SQL, podemos usar funções do pacote dplyr. Este pacote será explorado com detalhes na próxima seção.

Primeiro, precisamos criar uma conexão com o banco de dados. Isso pode ser feito com a função src_sqlite().

conexao <- src_sqlite("imdb.sqlite", create = TRUE)

Para gerar as tabelas, usamos a funçãotbl().

imdb_sqlite <- tbl(conexao, "imdb")
imdb_select <- tbl(conexao, sql("SELECT titulo, ano, diretor FROM imdb"))

Por fim, podemos trazer os dados para a memória com a função collect().

collect(imdb_sqlite)
collect(imdb_select)

.json

Arquivos .json são muito úteis para transferência de dados pela internet. Para manipular esse tipo de arquivo no R, podemos utilizar as funções do pacote jsonlite.

library(jsonlite)
imdb_json <- read_json("imdb.json")

Arquivos de outros softwares

Para ler arquivos gerados por outros softwares, como SPSS, SAS e STATA, você pode usar as funções do pacote haven. Este pacote faz parte do tidyverse e é um wrapper da biblioteca ReadStat, escrita em C.

library(haven)

imdb_sas <- read_sas("dados/imdb.sas7bdat")
imdb_spss <- read_spss("dados/imdb.sav")

Nossa Newsletter

Uma vez por semana enviamos um e-mail para você não perder nenhum post da Curso-R. Avisamos também sempre que abrimos uma nova turma.