Importe dados em R: leia arquivos CSV, Excel, SPSS, Stata, SAS
⚡ Resumo Inteligente
O guia "Importar Dados em R" abrange a leitura de arquivos CSV com `read.csv()`, planilhas do Excel com `readxl` e arquivos SAS, STATA ou SPSS com `haven`. Este guia também mostra como selecionar planilhas, linhas e intervalos de células com precisão durante a importação.

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 arquivos CSV
O formato de dados mais utilizado é o .csv, valores separados por vírgula. O R carrega uma série de bibliotecas durante a inicialização, incluindo o pacote utils. Esse pacote fornece a função read.csv(), a maneira padrão de abrir um arquivo CSV. Aqui está a sintaxe:
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"
Em versões do R anteriores à 4.0.0, a função read.csv() convertia cada coluna de caracteres em um fator, razão pela qual class(df$X) retorna “factor” acima. Você pode desativar essa conversão com stringsAsFactors = FALSE.
⚠️ Nota sobre a versão: desde R 4.0.0 O padrão é stringsAsFactors = FALSE, portanto, as colunas de caracteres permanecem como caracteres e o primeiro exemplo agora retorna “character” em uma instalação moderna. Passar o argumento explicitamente, como abaixo, produz o mesmo resultado em todas as versões e é a prática mais segura.
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.
read.csv() vs read_csv(): Qual você deve usar?
A função `read.csv()` já vem incluída no R base e não precisa de nenhum pacote. O pacote `readr` adiciona a função `read_csv()`, que é mais rápida e toma menos decisões em seu nome.
| Critérios | ler.csv() (utilitários) | ler_csv() (readr) |
|---|---|---|
| Pacote necessário | nenhum | leitor |
| Velocidade em arquivos grandes | Mais lento | Várias vezes mais rápido |
| Returns | quadro de dados | comer |
| Nomes de coluna | Espaços convertidos em pontos | Mantido exatamente como descrito. |
| Detecção de tipo | Silent | Conforme descrito na especificação da coluna. |
library(readr) df <- read_csv(PATH) # For very large files, data.table::fread() is faster still library(data.table) df <- fread(PATH)
Use `read.csv()` para arquivos pequenos e scripts que precisam ser executados sem pacotes adicionais. Use `read_csv()` quando o arquivo for grande ou quando for importante preservar os nomes exatos das colunas.
Ler arquivos do 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 estiver instalado, 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 de uma planilha específica, informe o nome dela:
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() abre os arquivos com extensão .xls e .xlsx e seleciona automaticamente o analisador sintático correto.
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 conjunto de dados iris_no_header, o readxl gerou cinco nomes de espaço reservado. Versões mais antigas produziam de X__1 a X__5, enquanto as versões atuais produzem de …1 a …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
O exemplo_1 retorna 4 linhas e 2 colunas. O intervalo A1:B5 abrange cinco linhas da planilha, mas a primeira é utilizada como cabeçalho, razão pela qual a dimensão é 4 por 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
example_2, por outro lado, é 4 por 5. cell_rows(1:5) novamente trata a primeira linha como o cabeçalho, então quatro linhas de dados são retornadas em todas as cinco 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)
Você também pode selecionar colunas por letra, exatamente como no 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().
O argumento `na` indica à função `read_excel()` quais valores devem ser considerados como ausentes. Conte-os com `sum()` e `is.na()`:
- 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.
Importar dados de outros softwares estatísticos
Os arquivos de outros pacotes estatísticos são importados com o refúgio pacote, que suporta SAS, STATA e SPSS. Podemos usar a seguinte função para abrir diferentes tipos de conjuntos 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
Cada uma dessas funções precisa apenas de um argumento, o caminho onde o arquivo está armazenado, e cada uma aceita um URL tão facilmente quanto uma trilha local.
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
Ler arquivos 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
Ler arquivos 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
Ler arquivos SPSS
A função read_sav() abre um arquivo SPSS com a extensão .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
Verificar a lista abaixo antes de importar evita a maior parte do trabalho de limpeza posterior:
- O formato típico de uma planilha é usar as primeiras linhas como cabeçalho (geralmente o nome das variáveis).
- Evite espaços em branco em nomes de arquivos ou colunas, pois eles podem ser interpretados como separadores de coluna. Em vez disso, use um sublinhado.
- Nomes curtos são preferidos
- Não utilize símbolos no nome. Escreva exchange_rate_dollar_euro em vez de exchange_rate_$_€.
- Codifique os valores ausentes como NA em vez de espaços em branco, traços ou números sentinela, como -99, que, de outra forma, teriam que ser limpos posteriormente.
Importando dados em R: Referência de funções
A tabela abaixo lista a função de importação para cada tipo de arquivo, a biblioteca que a fornece e seus argumentos padrão:
| Biblioteca | Objetivo | função | Argumentos Padrão |
|---|---|---|---|
| útil | Ler arquivo CSV | ler.csv() | arquivo, cabeçalho = VERDADEIRO, sep = “,” |
| 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 | ler_dta() / ler_stata() | caminho |
| refúgio | Leia o arquivo SPSS | ler_sav() | caminho |
A segunda tabela mostra as maneiras de importar uma seleção com 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”) |







