Você está na página 1de 23

Aula 2

Importação de Dados
Introdução

Data Frames são a estrutura de dados mais usual do R, porém


criar grandes bancos de dados a partir da função não é prático.
Assim, existem algumas funções no R que permitem a importação
de arquivos tabulados, ou de largura fixa.
Revisão

A função base mais genérica para importar tabelas no R é o


read.table(). Esta função possui alguns argumentos
importantes:

I file: que deve conter o endereço do arquivo que será lido.

*header: Argumento lógico que diz se o arquivo importado tem ou


não nomes de coluna. Caso header = TRUE a função irá
considerar que a primeira linha do arquivo contém os nomes das
colunas. O default é FALSE.

I sep: É o argumento que fala qual caracter está separando as


colunas. O default é um espaço.
Revisão

Dentre todos os tipos de separadores, o mais usado para a leitura


são os arquivos csv, por isso as funções mais usadas para
importação são read.csv() e read.csv2(). A única diferença
entre essas duas funções é o separador padrão, na primeira função
o separador é “,” e na segunda é “;”.
Pacotes

Infelizmente, nem todos os arquivos que se precisa ler estão em csv


e saber todos os tipos de tabuladores não é prático. Para isso, o R
possui pacotes que já foram feitos com o intuito de ler esses
arquivos com tabulação não usual.
readr

Para grandes bancos de dados, o processamento dessas funções é


muito lento. Para melhorar esse problema, foi implementado o
pacote readr que otmiza as funções de leitura base do R. As
funções read.csv() e read.csv2() têm basicamente a mesma
sintaxe, mas nesse pacote o nome das funções são read_csv() e
read_csv2().
readr

Fixed width file ou arquivo de largura fixa, é um dos tipos mais


comuns de arquivos nos banco de dados do governo brasileiro, esse
tipo de arquivo consiste em não possuir separadores e sua leitura é
feita a partir de posições informadas pelo usuário.

I Sintaxe: read_fwf(file, col_positions)


read_fwf

I file: é o endereço do arquivo.


I col_positions: esse argumento é suprido pelo uso das
funções fwf_width() e fwf_positions(), na primeira
função deve ser colocado um vetor com o comprimento de
cada coluna e na segunda existem dois argumentos de
tamanho, o primeiro indicando em que posição começa a
coluna e o segundo indicando onde termina. Em ambas as
funções existe um terceiro parâmetro para colocar um vetor
com o nome das colunas.
devtools

Alguns pacotes não estão disponíveis no CRAN e para usá-los,


deve-se instalar o pacote devtools. Neste pacote existe a função
install_github(). O argumento obrigatório deve ser o nome do
repositório que é definido por: “usuario/repositiorio”.
Exercício:

1. Instale o pacote devtools e em seguida o pacote


microdadosBrasil.(Dica: o segundo deve ser instalado através
do install_github onde o usuário é lucasmation e o repositório
microdadosBrasil)
microdadosBrasil

Pela grande complexidade em ler as bases brasileiras em formato


fwf, foi criado um pacote, para realizar a leitura desses microdados,
chamado de microdadosBrasil. Mais informações sobre o pacote
visite: microdadosBrasil
microdadosBrasil

Funções usuais do pacote:

I download_sourceDATA(): função para download dos bancos,


possui 3 argumentos, dataset que contém o nome do banco
desejado, i é o ano de referência do banco e unzip é um
argumento lógico que diz se o arquivo deveria ser dezipado ou
não.
I read_PNAD(): função para ler a PNAD, tem os argumentos
ft(diz se é base de pessoas ou família), i é o ano de
referência, root_path é o argumento que indica o endereço
do arquivo caso tenha sido baixado fora do pacotes e nrows
indica a quantidade de linhas a serem lidas.
Exercícios

1. Com o pacote readr leia o dicionário da PNAD, lembre-se de


usar o stringAsFactor = F.
2. Com esse dicionário, use a função read_fwf() para ler o
arquivo no endereço
“bancos/AMOSTRA_DF_PNAD2009p.txt”. Crie o
col_positions através da função fwf_widths, onde o
argumento widths é igual a coluna tamanho2 do dicionário
lido no exercício anterior.
3. Agora leia o mesmo arquivo através da função read_PNAD do
microdadosBrasil. Use file =
“bancos/AMOSTRA_DF_PNAD2009p.txt” e preencha os
argumentos ft e i corretamente.
readxl

Planilhas em excel não possuem tabulações simples, além disso um


arquivo excel pode estar separado em várias planilhas e no R base,
não existe nenhuma forma de lidar com esse tipo de dados. Para
isso foi criado o pacote readxl.
readxl

O pacote possui 2 funções principais, que serão explicadas aqui:

I excel_sheets(): esta função retorna o nome de cada


planilha dentro de um documento xls. Possui apenas um
argumento (path) que indica o endereço do pacote.
I read_excel(): função para ler planilhas separadas de excel.
Requer parâmetros path que indica o caminho até o arquivo e
sheet indica o nome da planilha ser lida dentro do
documento excel. Outros argumentos podem ser lidos aqui
Exercício

1. Quais os nomes das planilhas presentes no documento que


está no endereço “bancos/datasets.xls”?
2. Leia a terceira planilha desse documento.
3. (DESAFIO) Crie um loop com lapply para ler todas as
planilhas de uma só vez.
foreign

O pacote foreign foi criado com o intuito de importar arquivos


salvos de outros softwares estatísticos, tais como SAS, STATA e
SPSS. Para essa leitura, são usadas as seguintes funções:

I read.spss(): função que importa dados do SPSS, possui


apenas um argumento obrigatório, file, contém o endereço
do arquivo.
I read.dta(): função para importar dados do STATA, mesmo
argumento obrigatório que a função anterior.
I read.xport(): função para importar dados de uma library do
SAS, tem apenas um argumento que é o mesmo que o
obrigatório dos anteriores. Atenção para o retorno, pode ser
uma lista de data.frame’s
Exercício:

1. Leia o arquivo “electric.sav” presente na pasta bancos. Dado


que arquivos .sav são arquivos com extensão de SPSS, use a
função correspondente.
Conexão SQL

Como foi mostrado, o R tem diversas formas de ler arquivos. Um


dos mais importantes para usuários do dplyr é o SQL. Para esse
tipo de arquivo, o tidyverse tem um pacote específico para
interface de banco de dados, o DBI.
DBI

O DBI tem diversas funções, para os mais variados tipos de


conexões. Neste curso, irá ser abordadas algumas funções para
efetuar a conexão com um driver SQL, fazer queries e transformar
a tabela em um objeto R.
DBI

I dbConnect: Função para criar conexão com algum driver de


SQL. Para cada tipo de driver existe um pacote para criá-lo.
Aqui será usado o SQLite. Seus argumentos são, drv que é
onde o driver será criado e dbname onde fica o caminho até o
arquivo “.db” ou “.sqlite”.

Sintaxe: conn <- dbConnect(drv, dbname)


Exercício:

1. Instale o pacote RSQLite.


DBI
I dbListTables(): Lista o nome das tabelas presentes dentro
do arquivo “.db” e “.sqlite”. Possui apenas o argumento conn
com o nome da conexão criada pela função anterior.

Sintaxe: dbListTables(conn)

I dbGetQuery(): Executa os queries. Possui dois argumentos,


conn com a conexão e statement com o query a ser
executado. Esse comando devolve um objeto em R pronto
para ser trabalhado

Sintaxe: dbGetQuery(conn, statement)

I dbDisconnect(): As conexões devem sempre ser fechadas.


Possui um argumento obrigatório conn com o nome da
conexão.

Sintaxe: dbDisconnect(conn)
DBI

Exercícios:

2. Crie uma conexão com o arquivo “chinook.db” presente na


pasta bancos.
3. Liste o nome das tabelas presentes nessa conexão. Armazene
o resultado no objeto tabelas.vec
4. Crie uma Query que selecione todas as linhas da tabela que
está na última posição do vetor tabelas.vec.
5. Qual o número de músicas para cada tipo de gênero?

Você também pode gostar