Aula 14 - Importando e Exportando dados
Usaremos Batista e Oliveira (2021):
R
(Chambers, 2016): “Interfaces para outros programas são parte do R
”;R
como um ambiente para a computação estatística, esta ferramenta se tornou tão versátil que hoje torna humilde essa definição;R
interagir com outros softwares, linguagens, etc., é muito grande, e assim pode se tornar complexo a importação e exportação de dados;
S
, SPSS
, SAS
, Minitab
, Python
, EXCEL
, SQL
, …R
, com o uso do R Markdown
!shiny
.Limitaremos a:
<>.txt
, <>.csv
;<>.xls
, <>.xlsx
;R
…read.table()
data.frame
com os dados importadosRStudio
tem alguns recursos que podem facilitar a importação de dadosNo banco de dados, sempre:
Sugestões ao banco de dados:
segundavariavel
(mau escolha), segvar
(boa escolha), seg_var
(boa escolha);_
”, por exemplo, var 2
(mau escolha), var2
(boa escolha), var_2
(boa escolha);R
), e isto pode causar possíveis conflitos na interpretação dos dados.Usando o console:
Vamos usar o R para verificar este comando!
<>.csv
:
<>.txt
:
EXCEL
: <>.xls
, <>.xlsx
- pacotes: readxl
, writexl
!Exemplos:
RStudio
R
setwd()
, getwd()
, read.table()
read.table()
:
file
: banco de dados;header
: argumento lógico, se header = TRUE
, então implica dizer que as variáveis estão identificadas por um nome, isto é, a primeira linha do banco de dados representa o nome das variáveis; se header = FALSE
(padrão), caso contrário;R
read.table()
:
sep
: separador de variáveis nas colunas, o padrão é sep = ""
, isto é, sem espaços; no caso de arquivos de extensão: <>.csv
, geralmente, usamos para este argumento sep = ";"
, identificando que a separação das variáveis está representada por “;
”;dec
: separador de casas decimais, sendo o padrão dec = "."
.# Diretorio
getwd()
# Mudando para o diretorio de interesse
setwd('C:/eambr01')
# Verificando os arquivos no diretorio de trabalho
list.files()
# Importando os dados apontando para o diretorio do arquivo
dados1 <- read.table(file = 'C:/eambr01/alfafa.txt', header = TRUE)
# Considerando que o arquivo esta no diretorio de
# trabalho, isto eh, getwd()
dados2 <- read.table('alfafa.txt', header = TRUE)
# Importando os dados com decimais com ',' apontando para o diretorio do arquivo
dados3 <- read.table(file = 'C:/eambr01/dadost1980.txt', header = TRUE, dec = ',')
# Considerando que o arquivo esta no diretorio de
# trabalho, isto eh, getwd()
dados4 <- read.table(file = 'dadost1980.txt', header = TRUE, dec = ',')
# Importando os dados com decimais ',', e separados por ';' apontando para o diretorio do arquivo
dados5 <- read.table(file = 'C:/eambr01/producao.csv', header = TRUE, dec = ',', sep = ';')
# Considerando que o arquivo esta no diretorio de
# trabalho, isto eh, getwd()
dados6 <- read.table(file = 'producao.csv', header = TRUE, dec = ',', sep = ';')
# Importando da internet
dados7 <- read.table(file = 'https://raw.githubusercontent.com/bendeivide/book-eambr01/main/files/alfafa.txt', header = TRUE)
Extensões exportadas:
<>.txt
: Pacote nativo utils
<>.xlsx
: Pacote writexl
xtable
Funções usadas: utils::write.table()
, writexl::write_xlsx()
, xtable::xtable()
# Instalando e/ou carregando o pacote 'readxl'
#install.packages('readxl') # Se nao tiver instalado!
library('readxl')
# Vendo exemplos de arquivo no pacote
readxl_example()
# Caminho do arquivo
arquivo_xlsx <- readxl_example('datasets.xlsx')
# Estrutura de dado 'tibble'
dado <- read_excel(arquivo_xlsx); dado
# Estrutura de dado 'quadro de dado (data frame)'
head(as.data.frame(dado))
# Arquivo temporario
x <- tempfile(pattern = 'dados', fileext = '.txt')
# Objeto
d <- data.frame(x = 1, y = 1:10)
# Exportando os dados
write.table(d, file = x, sep = '\t', quote = FALSE, row.names = FALSE)
# sep = '\t' => representa uma TAB entre as colunas
# file = x => Essa saida foi um arquivo temporario, mas se desejar exportar os dados para um arquivo especifico, em um diretorio específico, basta inserir esse caminho entre
#aspas, por exemplo, file = 'C:\dados.txt'
# Abrindo o arquivo
file.show(x)
# Dados do pacote nativo 'datasets'
library('datasets')
dados <- head(cars); dados # Quadro de dados (Data frame)
# Instalando e/ou carregando writexl
install.packages('writexl')
library(writexl)
# Diretorio de trabalho
dirtrab <- getwd()
# Nome do arquivo
nome <- 'dados.xlsx'
# Caminho
caminho <- paste(dirtrab, nome, sep = '/')
# Exportando esses dados para um '.xlsx'
file <- writexl::write_xlsx(dados, caminho)
# Mortrando o arquivo
file.show(file)
# Vamos criar agora listas de quadro de dados
d1 <- head(cars); d1 # valores iniciais de 'cars'
d2 <- tail(cars); d2 # valores finais de 'cars'
lista <- list(elem01 =d1, elem02 =02); lista
# Diretorio de trabalho
dirtrab <- getwd()
# Nome do arquivo
nome <- 'lista.xlsx'
# Caminho
caminho <- paste(dirtrab, nome, sep = '/')
# Exportando esses dados para um '.xlsx'
file <- writexl::write_xlsx(lista, caminho)
# Mortrando o arquivo
file.show(file)
Comandos no R:
Saída no console
:
\begin{table}[ht]
\centering
\begin{tabular}{rrrr}
\hline
& mpg & cyl & disp \\
\hline
Mazda RX4 & 21.00 & 6.00 & 160.00 \\
Mazda RX4 Wag & 21.00 & 6.00 & 160.00 \\
Datsun 710 & 22.80 & 4.00 & 108.00 \\
Hornet 4 Drive & 21.40 & 6.00 & 258.00 \\
Hornet Sportabout & 18.70 & 8.00 & 360.00 \\
Valiant & 18.10 & 6.00 & 225.00 \\
\hline
\end{tabular}
\end{table}
Sugestões, perguntas, críticas…