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

Cuprins:

Anonim

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

  1. Utilizați argumentul n_max pentru a returna n rânduri
  2. 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

  1. sumă
  2. 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")