Importați date în R: Citiți fișiere CSV, Excel, SPSS, Stata, SAS

Datele pot exista în diferite formate. Pentru fiecare format R are o funcție și un argument specific. Acest tutorial explică cum să importați date în R.

Citiți CSV

Unul dintre cele mai răspândite depozite de date este formatele de fișier .csv (valori separate prin virgulă). R încarcă o serie de biblioteci în timpul pornirii, inclusiv pachetul utils. Acest pachet este convenabil pentru a deschide fișiere csv combinate cu funcția read.csv(). Iată sintaxa pentru read.csv

read.csv(file, header = TRUE, sep = ",")

Argument:

  • fişier: PATH unde este stocat fișierul
  • antet: confirmați dacă fișierul are un antet sau nu, în mod implicit, antetul este setat la TRUE
  • sep: simbolul folosit pentru a împărți variabila. În mod implicit, `,`.

Vom citi numele fișierului de date mtcats. Fișierul csv este stocat online. Dacă fișierul dvs. .csv este stocat local, puteți înlocui PATH din fragmentul de cod. Nu uitați să-l înfășurați în interiorul " ". PATH trebuie să fie o valoare șir.

Pentru utilizatorul de Mac, calea pentru folderul de descărcare este:

 "/Users/USERNAME/Downloads/FILENAME.csv"

Pentru utilizatorul Windows:

"C:\Users\USERNAME\Downloads\FILENAME.csv"

Rețineți că, ar trebui să specificăm întotdeauna extensia numelui fișierului.

  • .csv
  • .xlsx
  • .TXT
  • ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'                
df <- read.csv(PATH, header =  TRUE, sep = ',')
length(df)

producție

## [1] 12
class(df$X)

producție

## [1] "factor"

R, în mod implicit, returnează valorile caracterelor ca factor. Putem dezactiva această setare adăugând 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)

producție

## [1] "character"

Clasa pentru variabila X este acum un caracter.

Citiți fișiere Excel

Excel fișierele sunt foarte populare în rândul analiștilor de date. Foile de calcul sunt ușor de lucrat și flexibile. R este echipat cu o bibliotecă readxl pentru a importa foi de calcul Excel.

Utilizați acest cod

require(readxl)

pentru a verifica dacă readxl este instalat în mașina dvs. Dacă instalați r cu r-conda-essential, biblioteca este deja instalată. Ar trebui să vedeți în fereastra de comandă:

producție

Loading required package: readxl.

Dacă pachetul nu iese, îl puteți instala cu conda bibliotecă sau în terminal, utilizați conda install -c mittner r-readxl.

Utilizați următoarea comandă pentru a încărca biblioteca pentru a importa fișiere Excel.

library(readxl)

readxl_example()

Folosim exemplele incluse în pachetul readxl în timpul acestui tutorial.

Folosiți codul de

readxl_example()

pentru a vedea toate foile de calcul disponibile în bibliotecă.

Readxl_Example

Pentru a verifica locația foii de calcul numită clippy.xls, utilizați simplu

readxl_example("geometry.xls")

Readxl_Example

Dacă instalați R cu conda, foile de calcul se află în Anaconda3/lib/R/library/readxl/extdata/filename.xls

read_excel()

Funcția read_excel() este de mare folos atunci când vine vorba de deschiderea extensiei xls și xlsx.

Sintaxa este:

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

Putem importa foile de calcul din biblioteca readxl și numărăm numărul de coloane din prima foaie.

# 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)

producție

## [1] 5

Excel_sheets()

Fișierul datasets.xlsx este compus din 4 foi. Putem afla ce foi sunt disponibile în registrul de lucru utilizând funcția excel_sheets().

example <- readxl_example("datasets.xlsx")

excel_sheets(example)

producție

[1] "iris"     "mtcars"   "chickwts" "quakes"

Dacă o foaie de lucru include multe foi, este ușor să selectați o anumită foaie folosind argumentele foii. Putem specifica numele foii sau indexul foii. Putem verifica dacă ambele funcții returnează aceeași ieșire cu identical().

example <- readxl_example("datasets.xlsx")
quake <- read_excel(example, sheet = "quakes")
quake_1 <-read_excel(example, sheet = 4)
identical(quake, quake_1)

producție

## [1] TRUE

Putem controla ce celule să citim în 2 moduri

  1. Utilizați argumentul n_max pentru a returna n rânduri
  2. Utilizați argumentul interval combinat cu cell_rows sau cell_cols

De exemplu, setăm n_max egal cu 5 pentru a importa primele cinci rânduri.

# Read the first five row: with header
iris <-read_excel(example, n_max =5, col_names =TRUE)

Excel_sheets

Dacă schimbăm col_names în FALSE, R creează automat anteturile.

# Read the first five row: without header
iris_no_header <-read_excel(example, n_max =5, col_names =FALSE)

iris_no_header

În cadrul de date iris_no_header, R a creat cinci variabile noi numite X__1, X__2, X__3, X__4 și X__5

Excel_sheets

De asemenea, putem folosi intervalul de argumente pentru a selecta rândurile și coloanele din foaia de calcul. În codul de mai jos, folosim stilul excel pentru a selecta intervalul de la A1 la B5.

# Read rows A1 to B5
example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)
dim(example_1)

producție

## [1] 4 2

Putem vedea că exemplul_1 returnează 4 rânduri cu 2 coloane. Setul de date are antet, motiv pentru care dimensiunea este 4×2.

Excel_sheets

În al doilea exemplu, folosim funcția cell_rows() care controlează intervalul de rânduri de returnat. Dacă vrem să importam rândurile de la 1 la 5, putem seta cell_rows(1:5). Rețineți că, cell_rows(1:5) returnează aceeași ieșire ca 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)

producție

## [1] 4 5

Exemplul_2 este însă o matrice 4×5. Setul de date iris are 5 coloane cu antet. Revenim primele patru rânduri cu antetul tuturor coloanelor

Excel_sheets

În cazul în care dorim să importam rânduri care nu încep la primul rând, trebuie să includem col_names = FALSE. Dacă folosim range = cell_rows(2:5), devine evident cadrul nostru de date nu mai are antet.

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_sheets

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)

producție

## [1] 150   2

Notă: interval = cell_cols(„A:B”), returnează toate celulele cu valoare non-nulă. Setul de date conține 150 de rânduri, prin urmare, read_excel() returnează rânduri până la 150. Acest lucru este verificat cu funcția dim().

read_excel() returnează NA când un simbol fără valoare numerică apare în celulă. Putem număra numărul de valori lipsă prin combinarea a două funcții

  1. sumă
  2. este.na

Iată codul

iris_na <-read_excel(example, na ="setosa")
sum(is.na(iris_na))

producție

## [1] 50

Ne lipsesc 50 de valori, care sunt rândurile aparținând speciei setosa.

Importați date din alt software statistic

Vom importa diferite formate de fișiere cu pachetul heaven. Acest pachet de suport SAS, STATA și SPSS. Putem folosi următoarea funcție pentru a deschide diferite tipuri de set de date, în funcție de extensia fișierului:

  • SAS: read_sas()
  • STATA: read_dta() (sau read_stata(), care sunt identice)
  • SPSS: read_sav() sau read_por(). Trebuie să verificăm extensia

Este necesar un singur argument în cadrul acestor funcții. Trebuie să știm PATH unde este stocat fișierul. Gata, suntem gata să deschidem toate fișierele din SAS, STATA și SPSS. Aceste trei funcții acceptă și o adresă URL.

library(haven)

haven vine cu conda r-essential altfel du-te la legătură sau în terminalul conda install -c conda-forge r-haven

Citiți sas

Pentru exemplul nostru, vom folosi setul de date de admitere de la IDRE.

PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true'
df <- read_sas(PATH_sas)
head(df)

producție

## # 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

Citiți STATA

Pentru fișierele de date STATA puteți utiliza read_dta(). Folosim exact același set de date, dar stocăm în fișierul .dta.

PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true'
df <- read_dta(PATH_stata)
head(df)

producție

## # 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

Citiți SPSS

Folosim funcția read_sav() pentru a deschide un fișier SPSS. Extensia de fișier „.sav”

PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true'
df <- read_sav(PATH_spss)
head(df)

producție

## # 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

Cele mai bune practici pentru importul de date

Când dorim să importăm date în R, este util să implementăm următoarea listă de verificare. Acesta va facilita importarea corectă a datelor în R:

  • Formatul tipic pentru o foaie de calcul este utilizarea primelor rânduri ca antet (de obicei, numele variabilelor).
  • Evitați să denumiți un set de date cu spații goale; poate duce la interpretare ca o variabilă separată. Ca alternativă, preferați să utilizați „_” sau „-”.
  • Sunt de preferat numele scurte
  • Nu includeți simbolul în nume: adică: cursul_de_schimb_$_€ nu este corect. Prefer să-l numești: exchange_rate_dollar_euro
  • Utilizați NA pentru valorile lipsă altfel; trebuie să curățăm formatul mai târziu.

Rezumat

Următorul tabel rezumă funcția de utilizat pentru a importa diferite tipuri de fișiere în R. Coloana unu indică biblioteca aferentă funcției. Ultima coloană se referă la argumentul implicit.

Bibliotecă Obiectiv Funcţie Argumente implicite
utils Citiți fișierul CSV read.csv() fișier, antet =,TRUE, sep = „,”
readxl Citiți fișierul EXCEL read_excel() cale, interval = NULL, col_names = TRUE
refugiu Citiți fișierul SAS read_sas() cale
refugiu Citiți fișierul STATA read_stata() cale
refugiu Citiți SPSS file read_sav() cale

Următorul tabel arată diferitele modalități de a importa o selecție cu funcția read_excel().

Funcţie Obiectiv Argumente
read_excel() Citiți n număr de rânduri n_max = 10
Selectați rânduri și coloane ca în excel interval = „A1:D10”
Selectați rânduri cu indici interval= rânduri_celule(1:3)
Selectați coloanele cu litere interval = cell_cols(„A:C”)