Datele ar putea 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.
În acest tutorial, veți învăța
- Citiți CSV
- Citiți fișiere Excel
- readxl_example ()
- read_excel ()
- Excel_sheets ()
- Importați date din alte programe statistice
- Citește sas
- Citiți STATA
- Citiți SPSS
- Cele mai bune practici pentru importul de date
Citiți CSV
Unul dintre cele mai extinse depozite de date este formatul 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 reading.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 antet sau nu, în mod implicit, antetul este setat la TRUE
- sep : simbolul folosit pentru divizarea variabilei. Î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-ul din fragmentul de cod. Nu uitați să-l înfășurați în interior ”. PATH trebuie să fie o valoare șir.
Pentru utilizatorul 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)
Ieșire:
## [1] 12
class(df$X)
Ieșire:
## [1] "factor"
R, 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)
Ieșire:
## [1] "character"
Clasa pentru variabila X este acum un caracter.
Citiți fișiere Excel
Fișierele Excel sunt foarte populare în rândul analiștilor de date. Foile de calcul sunt ușor de utilizat și flexibile. R este echipat cu o bibliotecă readxl pentru a importa foaia de calcul Excel.
Folosiți acest cod
require(readxl)
pentru a verifica dacă readxl este instalat în aparatul dvs. Dacă instalați r cu r-conda-essential, biblioteca este deja instalată. Ar trebui să vedeți în fereastra de comandă:
Ieșire:
Loading required package: readxl.
Dacă pachetul nu iese, îl puteți instala cu biblioteca conda 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 ()
Utilizăm exemplele incluse în pachetul readxl în timpul acestui tutorial.
Folosiți codul
readxl_example()
pentru a vedea toate foile de calcul disponibile în bibliotecă.
Pentru a verifica locația foii de calcul denumită clippy.xls, utilizați simplu
readxl_example("geometry.xls")
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 extensiilor 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 foi de calcul din biblioteca readxl și putem număra numărul de coloane din prima foaie.
# Store the path of `datasets.xlsx`example <- readxl_example("datasets.xlsx")# Import the spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)
Ieșire:
## [1] 5
Excel_sheets ()
Fișierul datasets.xlsx este compus din 4 coli. Putem afla ce foi sunt disponibile în registrul de lucru folosind funcția excel_sheets ()
example <- readxl_example("datasets.xlsx")excel_sheets(example)
Ieșire:
[1] "iris" "mtcars" "chickwts" "quakes"
Dacă o foaie de lucru include mai multe foi, este ușor să selectați o anumită foaie utilizând argumentele foii. Putem specifica numele foii sau indexul foii. Putem verifica dacă ambele funcții returnează aceeași ieșire cu identic ().
example <- readxl_example("datasets.xlsx")quake <- read_excel(example, sheet = "quakes")quake_1 <-read_excel(example, sheet = 4)identical(quake, quake_1)
Ieșire:
## [1] TRUE
Putem controla ce celule să citim în 2 moduri
- Utilizați argumentul n_max pentru a returna n rânduri
- Folosiți argumentul interval combinat cu rânduri_celulă sau celule_coli
De exemplu, setăm n_max egal cu 5 pentru a importa primele cinci rânduri.
# Read the first five row: with headeriris <-read_excel(example, n_max =5, col_names =TRUE)
Dacă schimbăm col_names în FALSE, R creează anteturile automat.
# Read the first five row: without headeriris_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
De asemenea, putem utiliza intervalul de argumente pentru a selecta rânduri și coloane în foaia de calcul. În codul de mai jos, folosim stilul excel pentru a selecta intervalul A1 până la B5.
# Read rows A1 to B5example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)dim(example_1)
Ieșire:
## [1] 4 2
Putem vedea că exemplul_1 returnează 4 rânduri cu 2 coloane. Setul de date are antet, motivul pentru care dimensiunea este 4x2.
În al doilea exemplu, folosim funcția cell_rows () care controlează gama de rânduri pentru a reveni. Dacă dorim să importăm 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 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)
Ieșire:
## [1] 4 5
Exemplul_2 este totuși o matrice 4x5. Setul de date iris are 5 coloane cu antet. Întoarcem primele patru rânduri cu antetul tuturor coloanelor
În cazul în care dorim să importăm rânduri care nu încep de la primul rând, trebuie să includem col_names = FALSE. Dacă folosim range = cell_rows (2: 5), devine evident că 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)
We can select the columns with the letter, like in Excel.# Select columns A and Bcol <-read_excel(example, range =cell_cols("A:B"))dim(col)
Ieșire:
## [1] 150 2
Notă: range = cell_cols ("A: B"), returnează ieșirea tuturor celulelor cu valoare non-nulă. Setul de date conține 150 de rânduri, prin urmare, read_excel () returnează rânduri de până la 150. Acest lucru este verificat cu funcția dim ().
read_excel () returnează NA când apare un simbol fără valoare numerică în celulă. Putem număra numărul de valori lipsă cu combinația a două funcții
- sumă
- este.na
Iată codul
iris_na <-read_excel(example, na ="setosa")sum(is.na(iris_na))
Ieșire:
## [1] 50
Ne lipsesc 50 de valori, care sunt rândurile aparținând speciei setosa.
Importați date din alte programe statistice
Vom importa diferite fișiere cu pachetul heaven. Acest pachet acceptă software SAS, STATA și SPSS. Putem folosi următoarea funcție pentru a deschide diferite tipuri de seturi 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
În aceste funcții este necesar un singur argument. Trebuie să cunoaștem calea în care 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 mergi la link sau în terminal conda install -c conda-forge r-haven
Citește sas
Pentru exemplul nostru, vom folosi setul de date de admitere din IDRE.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true'df <- read_sas(PATH_sas)head(df)
Ieșire:
## # A tibble: 6 x 4## ADMIT GRE GPA RANK#### 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)
Ieșire:
## # A tibble: 6 x 4## admit gre gpa rank#### 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)
Ieșire:
## # A tibble: 6 x 4## admit gre gpa rank#### 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 vrem să importăm date în R, este util să implementăm următoarea listă de verificare. Va facilita importarea corectă a datelor în R:
- Formatul tipic pentru o foaie de calcul este acela de a folosi primele rânduri ca antet (de obicei numele variabilelor).
- Evitați să denumiți un set de date cu spații goale; poate duce la interpretarea ca o variabilă separată. Alternativ, preferați să utilizați „_” sau „-.”
- Sunt preferate denumirile scurte
- Nu includeți simbolul în nume: de exemplu: rata_cambiului _ $ _ € nu este corectă. Preferați să o denumiți: 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 1 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, header =, TRUE, sep = "," |
readxl |
Citiți fișierul EXCEL |
read_excel () |
cale, interval = NULL, col_names = ADEVĂRAT |
refugiu |
Citiți fișierul SAS |
read_sas () |
cale |
refugiu |
Citiți fișierul STATA |
read_stata () |
cale |
refugiu |
Citiți SPSS fille |
read_sav () |
cale |
Următorul tabel prezintă diferitele modalități de a importa o selecție cu funcția read_excel ().
Funcţie |
Obiective |
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 indexuri |
range = cell_rows (1: 3) |
|
Selectați coloane cu litere |
range = cell_cols ("A: C") |