Importe dados em R: leia arquivos CSV, Excel, SPSS, Stata, SAS
Os dados podem existir em vários formatos. Para cada formato R tem uma função e um argumento específicos. Este tutorial explica como importar dados para R.
Ler CSV
Um dos armazenamentos de dados mais amplamente utilizados são os formatos de arquivo .csv (valores separados por vírgula). R carrega uma série de bibliotecas durante a inicialização, incluindo o pacote utils. Este pacote é conveniente para abrir arquivos csv combinado com a função reading.csv(). Aqui está a sintaxe para read.csv
read.csv(file, header = TRUE, sep = ",")
Argumento:
- lima: CAMINHO onde o arquivo está armazenado
- cabeçalho: confirme se o arquivo possui cabeçalho ou não, por padrão o cabeçalho é definido como TRUE
- setembro: o símbolo usado para dividir a variável. Por padrão, `,`.
Leremos o nome do arquivo de dados mtcats. O arquivo csv é armazenado online. Se o seu arquivo .csv estiver armazenado localmente, você poderá substituir o PATH dentro do trecho de código. Não se esqueça de embrulhar dentro ''. O PATH precisa ser um valor de string.
Para usuários mac, o caminho para a pasta de download é:
"/Users/USERNAME/Downloads/FILENAME.csv"
Para usuário do Windows:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Observe que devemos sempre especificar a extensão do nome do arquivo.
- . Csv
- . Xlsx
- .txt
- ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <- read.csv(PATH, header = TRUE, sep = ',') length(df)
saída
## [1] 12
class(df$X)
saída
## [1] "factor"
R, por padrão, retorna valores de caracteres como Fator. Podemos desativar essa configuração adicionando stringsAsFactors = FALSE.
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE) class(df$X)
saída
## [1] "character"
A classe da variável X agora é um caractere.
Ler arquivos Excel
Excel arquivos são muito populares entre analistas de dados. As planilhas são fáceis de trabalhar e flexíveis. R está equipado com uma biblioteca readxl para importar planilhas Excel.
Use este código
require(readxl)
para verificar se o readxl está instalado em sua máquina. Se você instalar r com r-conda-essential, a biblioteca já estará instalada. Você deverá ver na janela de comando:
saída
Loading required package: readxl.
Se o pacote não existir, você pode instalá-lo com o conda biblioteca ou no terminal, use conda install -c mittner r-readxl.
Use o seguinte comando para carregar a biblioteca para importar arquivos Excel.
library(readxl)
readxl_exemplo()
Usamos os exemplos incluídos no pacote readxl durante este tutorial.
Use o código
readxl_example()
para ver todas as planilhas disponíveis na biblioteca.
Para verificar a localização da planilha chamada clippy.xls, basta usar
readxl_example("geometry.xls")
Se você instalar R com conda, as planilhas estarão localizadas em Anaconda3/lib/R/library/readxl/extdata/filename.xls
leitura_excel()
A função read_excel() é de grande utilidade quando se trata de abrir extensões xls e xlsx.
A sintaxe é:
read_excel(PATH, sheet = NULL, range= NULL, col_names = TRUE) arguments: -PATH: Path where the excel is located -sheet: Select the sheet to import. By default, all -range: Select the range to import. By default, all non-null cells -col_names: Select the columns to import. By default, all non-null columns
Podemos importar as planilhas da biblioteca readxl e contar o número de colunas da primeira planilha.
# Store the path of `datasets.xlsx`
example <- readxl_example("datasets.xlsx")
# Import the spreadsheet
df <- read_excel(example)
# Count the number of columns
length(df)
saída
## [1] 5
planilhas_excel()
O arquivo datasets.xlsx é composto por 4 planilhas. Podemos descobrir quais planilhas estão disponíveis na pasta de trabalho usando a função excel_sheets()
example <- readxl_example("datasets.xlsx")
excel_sheets(example)
saída
[1] "iris" "mtcars" "chickwts" "quakes"
Se uma planilha incluir muitas planilhas, será fácil selecionar uma planilha específica usando os argumentos da planilha. Podemos especificar o nome da planilha ou o índice da planilha. Podemos verificar se ambas as funções retornam a mesma saída com idêntico().
example <- readxl_example("datasets.xlsx")
quake <- read_excel(example, sheet = "quakes")
quake_1 <-read_excel(example, sheet = 4)
identical(quake, quake_1)
saída
## [1] TRUE
Podemos controlar quais células ler de 2 maneiras
- Use o argumento n_max para retornar n linhas
- Use o argumento range combinado com cell_rows ou cell_cols
Por exemplo, definimos n_max igual a 5 para importar as primeiras cinco linhas.
# Read the first five row: with header iris <-read_excel(example, n_max =5, col_names =TRUE)
Se alterarmos col_names para FALSE, R cria os cabeçalhos automaticamente.
# Read the first five row: without header iris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_no_header
No quadro de dados iris_no_header, R criou cinco novas variáveis denominadas X__1, X__2, X__3, X__4 e X__5
Também podemos usar o argumento range para selecionar linhas e colunas na planilha. No código abaixo, usamos o estilo Excel para selecionar o intervalo A1 a B5.
# Read rows A1 to B5 example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE) dim(example_1)
saída
## [1] 4 2
Podemos ver que example_1 retorna 4 linhas com 2 colunas. O conjunto de dados possui cabeçalho, razão pela qual a dimensão é 4×2.
No segundo exemplo, usamos a função cell_rows() que controla o intervalo de linhas a retornar. Se quisermos importar as linhas 1 a 5, podemos definir cell_rows(1:5). Observe que cell_rows(1:5) retorna a mesma saída que cell_rows(5:1).
# Read rows 1 to 5 example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE) dim(example_2)
saída
## [1] 4 5
O exemplo_2, entretanto, é uma matriz 4×5. O conjunto de dados da íris possui 5 colunas com cabeçalho. Retornamos as primeiras quatro linhas com cabeçalho de todas as colunas
Caso queiramos importar linhas que não comecem na primeira linha, devemos incluir col_names = FALSE. Se usarmos range = cell_rows(2:5), fica óbvio que nosso quadro de dados não possui mais cabeçalho.
iris_row_with_header <-read_excel(example, range =cell_rows(2:3), col_names=TRUE) iris_row_no_header <-read_excel(example, range =cell_rows(2:3),col_names =FALSE)
We can select the columns with the letter, like in Excel.
# Select columns A and B
col <-read_excel(example, range =cell_cols("A:B"))
dim(col)
saída
## [1] 150 2
Nota: range = cell_cols(“A:B”), retorna a saída de todas as células com valor não nulo. O conjunto de dados contém 150 linhas, portanto, read_excel() retorna linhas até 150. Isso é verificado com a função dim().
read_excel() retorna NA quando um símbolo sem valor numérico aparece na célula. Podemos contar o número de valores ausentes com a combinação de duas funções
- soma
- é.na
Aqui está o código
iris_na <-read_excel(example, na ="setosa") sum(is.na(iris_na))
saída
## [1] 50
Faltam 50 valores, que são as linhas pertencentes à espécie setosa.
Importe dados de outro software estatístico
Importaremos diferentes formatos de arquivos com o pacote heaven. Este pacote suporta SAS, softwares STATA e SPSS. Podemos utilizar a seguinte função para abrir diferentes tipos de conjunto de dados, de acordo com a extensão do arquivo:
- SAS: read_sas()
- STATA: read_dta() (ou read_stata(), que são idênticos)
- SPSS: read_sav() ou read_por(). Precisamos verificar a extensão
Apenas um argumento é necessário dentro dessas funções. Precisamos saber o PATH onde o arquivo está armazenado. É isso, estamos prontos para abrir todos os arquivos do SAS, STATA e SPSS. Essas três funções também aceitam um URL.
library(haven)
Haven vem com conda r-essencial, caso contrário vá para o link ou no terminal conda install -c conda-forge r-haven
Leia sas
Para nosso exemplo, usaremos o conjunto de dados de admissão do IDRE.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true' df <- read_sas(PATH_sas) head(df)
saída
## # A tibble: 6 x 4 ## ADMIT GRE GPA RANK ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
Leia o STATA
Para arquivos de dados STATA você pode usar read_dta(). Usamos exatamente o mesmo conjunto de dados, mas armazenamos em um arquivo .dta.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true' df <- read_dta(PATH_stata) head(df)
saída
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
Leia SPSS
Usamos a função read_sav() para abrir um arquivo SPSS. A extensão do arquivo “.sav”
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true' df <- read_sav(PATH_spss) head(df)
saída
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
Melhores práticas para importação de dados
Quando queremos importar dados para R, é útil implementar a seguinte lista de verificação. Isso tornará mais fácil importar dados corretamente para R:
- O formato típico de uma planilha é usar as primeiras linhas como cabeçalho (geralmente o nome das variáveis).
- Evite nomear um conjunto de dados com espaços em branco; pode levar à interpretação como uma variável separada. Alternativamente, prefira usar '_' ou '-.'
- Nomes curtos são preferidos
- Não inclua símbolo no nome: ou seja: exchange_rate_$_€ não está correto. Prefira nomeá-lo: exchange_rate_dollar_euro
- Caso contrário, use NA para valores ausentes; precisamos limpar o formato mais tarde.
Resumo
A tabela a seguir resume a função a ser usada para importar diferentes tipos de arquivo em R. A coluna um indica a biblioteca relacionada à função. A última coluna refere-se ao argumento padrão.
| Biblioteca | Objetivo | função | Argumentos Padrão |
|---|---|---|---|
| útil | Ler arquivo CSV | ler.csv() | arquivo, cabeçalho =, VERDADEIRO, setembro = “,” |
| readxl | Ler arquivo EXCEL | leitura_excel() | caminho, intervalo = NULL, col_names = TRUE |
| refúgio | Ler arquivo SAS | read_sas() | caminho |
| refúgio | Leia o arquivo STATA | read_stata() | caminho |
| refúgio | Leia o arquivo SPSS | ler_sav() | caminho |
A tabela a seguir mostra as diferentes maneiras de importar uma seleção com a função read_excel().
| função | Objetivo | Argumentos |
|---|---|---|
| leitura_excel() | Leia n número de linhas | n_máx = 10 |
| Selecione linhas e colunas como no Excel | faixa = “A1:D10” | |
| Selecione linhas com índices | intervalo = linhas_células (1:3) | |
| Selecione colunas com letras | intervalo = células_cols(“A:C”) |







