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.

Readxl_Exemplo

Para verificar a localização da planilha chamada clippy.xls, basta usar

readxl_example("geometry.xls")

Readxl_Exemplo

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

  1. Use o argumento n_max para retornar n linhas
  2. 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)

Excel_Planilhas

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

Excel_Planilhas

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.

Excel_Planilhas

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

Excel_Planilhas

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)

Excel_Planilhas

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

  1. soma
  2. é.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”)

Resuma esta postagem com: