Importer data til R: Læs CSV-, Excel-, SPSS-, Stata-, SAS-filer

Indholdsfortegnelse:

Anonim

Data kunne eksistere i forskellige formater. For hvert format har R en bestemt funktion og argument. Denne vejledning forklarer, hvordan du importerer data til R.

I denne vejledning lærer du

  • Læs CSV
  • Læs Excel-filer
  • readxl_eksempel ()
  • read_excel ()
  • excel_sheets ()
  • Importere data fra anden statistisk software
  • Læs sas
  • Læs STATA
  • Læs SPSS
  • Bedste fremgangsmåder til dataimport

Læs CSV

En af de mest udbredte datalagre er .csv (komma-adskilte værdier) filformater. R indlæser en række biblioteker under opstarten, inklusive pakken med værktøjer. Denne pakke er praktisk at åbne csv-filer kombineret med funktionen reading.csv (). Her er syntaksen for read.csv

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

Argument :

  • fil : PATH, hvor filen er gemt
  • header : bekræft, om filen har en header eller ej, som standard er headeren indstillet til TRUE
  • sep : symbolet, der bruges til at opdele variablen. Som standard er `,`.

Vi læser datafilnavnet mtcats. Csv-filen gemmes online. Hvis din .csv-fil er gemt lokalt, kan du erstatte PATH inde i kodestykket. Glem ikke at pakke det ind ''. PATH skal være en strengværdi.

For mac-brugere er stien til downloadmappen:

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

For Windows-brugere:

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

Bemærk, at vi altid skal specificere udvidelsen af ​​filnavnet.

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

Produktion:

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

Produktion:

## [1] "factor"

R returnerer som standard tegnværdier som faktor. Vi kan slå denne indstilling fra ved at tilføje 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)

Produktion:

## [1] "character"

Klassen for variablen X er nu et tegn.

Læs Excel-filer

Excel-filer er meget populære blandt dataanalytikere. Regneark er nemme at arbejde med og fleksible. R er udstyret med et bibliotek readxl til import af Excel-regneark.

Brug denne kode

require(readxl)

for at kontrollere, om readxl er installeret i din maskine. Hvis du installerer r med r-conda-essential, er biblioteket allerede installeret. Du skal se i kommandovinduet:

Produktion:

Loading required package: readxl. 

Hvis pakken ikke afslutter, kan du installere den med conda-biblioteket eller i terminalen, brug conda install -c mittner r-readxl.

Brug følgende kommando til at indlæse biblioteket for at importere Excel-filer.

library(readxl)

readxl_eksempel ()

Vi bruger eksemplerne inkluderet i pakken readxl under denne tutorial.

Brug kode

readxl_example()

for at se alle de tilgængelige regneark i biblioteket.

Hvis du vil kontrollere placeringen af ​​regnearket med navnet clippy.xls, er det enkelt at bruge

readxl_example("geometry.xls")

Hvis du installerer R med conda, er regnearkene placeret i Anaconda3 / lib / R / library / readxl / extdata / filename.xls

read_excel ()

Funktionen read_excel () er til stor nytte, når det kommer til åbning af xls og xlsx-udvidelse.

Syntaksen er:

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

Vi kan importere regnearkene fra readxl-biblioteket og tælle antallet af kolonner i det første ark.

# Store the path of `datasets.xlsx`example <- readxl_example("datasets.xlsx")# Import the spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)

Produktion:

## [1] 5

excel_sheets ()

Filen datasets.xlsx består af 4 ark. Vi kan finde ud af, hvilke ark der er tilgængelige i projektmappen ved hjælp af funktionen excel_sheets ()

example <- readxl_example("datasets.xlsx")

excel_sheets(example)

Produktion:

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

Hvis et regneark indeholder mange ark, er det let at vælge et bestemt ark ved hjælp af arkargumenterne. Vi kan angive navnet på arket eller arkindekset. Vi kan kontrollere, om begge funktioner returnerer den samme output med identisk ().

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

Produktion:

## [1] TRUE

Vi kan kontrollere, hvilke celler der skal læses på 2 måder

  1. Brug argumentet n_max til at returnere n rækker
  2. Brug rækkevidde-argument kombineret med cellerækker eller cellekoler

For eksempel indstiller vi n_max er lig med 5 for at importere de første fem rækker.

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

Hvis vi ændrer kolonnenavne til FALSK, opretter R automatisk overskrifterne.

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

iris_no_header

I datarammen iris_no_header oprettede R fem nye variabler med navnet X__1, X__2, X__3, X__4 og X__5

Vi kan også bruge argumentområdet til at vælge rækker og kolonner i regnearket. I nedenstående kode bruger vi excel-stilen til at vælge området A1 til B5.

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

Produktion:

## [1] 4 2

Vi kan se, at eksemplet_1 returnerer 4 rækker med 2 kolonner. Datasættet har overskrift, der skyldes, at dimensionen er 4x2.

I det andet eksempel bruger vi funktionen cell_rows (), som styrer rækkevidden af ​​rækker, der skal returneres. Hvis vi vil importere række 1 til 5, kan vi indstille cell_rows (1: 5). Bemærk, at cell_rows (1: 5) returnerer den samme output som cell_rows (5: 1).

# Read rows 1 to 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)

Produktion:

## [1] 4 5

Eksemplet_2 er dog en 4x5 matrix. Iris-datasættet har 5 kolonner med overskrift. Vi returnerer de første fire rækker med overskrift på alle kolonner

Hvis vi vil importere rækker, der ikke begynder i første række, skal vi medtage col_names = FALSE. Hvis vi bruger interval = cell_rows (2: 5), bliver det tydeligt, at vores dataramme ikke længere har overskrift.

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)

Produktion:

## [1] 150 2 

Bemærk: interval = cell_cols ("A: B"), returnerer output alle celler med ikke-nul-værdi. Datasættet indeholder 150 rækker, derfor returnerer read_excel () rækker op til 150. Dette bekræftes med funktionen dim ().

read_excel () returnerer NA, når et symbol uden numerisk værdi vises i cellen. Vi kan tælle antallet af manglende værdier med kombinationen af ​​to funktioner

  1. sum
  2. is.na

Her er koden

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

Produktion:

## [1] 50

Vi mangler 50 værdier, som er de rækker, der tilhører setosa-arten.

Importere data fra anden statistisk software

Vi importerer forskellige filformater med himlen-pakken. Denne pakke understøtter SAS, STATA og SPSS software. Vi kan bruge følgende funktion til at åbne forskellige typer datasæt i henhold til filens udvidelse:

  • SAS: read_sas ()
  • STATA: read_dta () (eller read_stata (), som er identiske)
  • SPSS: read_sav () eller read_por (). Vi er nødt til at kontrollere udvidelsen

Der kræves kun et argument inden for denne funktion. Vi har brug for at kende stien, hvor filen er gemt. Det er det, vi er klar til at åbne alle filer fra SAS, STATA og SPSS. Disse tre funktioner accepterer også en URL.

library(haven)

haven leveres med conda r-essentiel ellers gå til linket eller i terminalen conda installer -c conda-smedje r-haven

Læs sas

For vores eksempel skal vi bruge optagelsesdatasættet fra IDRE.

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

Produktion:

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

Læs STATA

For STATA-datafiler kan du bruge read_dta (). Vi bruger nøjagtigt det samme datasæt, men gemmer i .dta-filen.

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

Produktion:

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

Læs SPSS

Vi bruger read_sav () -funktionen til at åbne en SPSS-fil. Filtypen ".sav"

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

Produktion:

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

Bedste fremgangsmåder til dataimport

Når vi vil importere data til R, er det nyttigt at implementere følgende tjekliste. Det gør det nemt at importere data korrekt til R:

  • Det typiske format for et regneark er at bruge de første rækker som overskrift (navn på variabler).
  • Undgå at navngive et datasæt med tomme mellemrum; det kan føre til fortolkning som en separat variabel. Alternativt foretrækker du at bruge '_' eller '-.'
  • Korte navne foretrækkes
  • Medtag ikke symbol i navnet: dvs.: exchange_rate _ $ _ € er ikke korrekt. Foretrækker at navngive det: exchange_rate_dollar_euro
  • Brug NA for manglende værdier ellers; vi er nødt til at rense formatet senere.

Resumé

Den følgende tabel opsummerer den funktion, der skal bruges til at importere forskellige filtyper i R. Kolonnen en angiver biblioteket, der er relateret til funktionen. Den sidste kolonne henviser til standardargumentet.

Bibliotek

Objektiv

Fungere

Standardargumenter

redskaber

Læs CSV-fil

read.csv ()

fil, header =, SAND, sep = ","

readxl

Læs EXCEL-fil

read_excel ()

sti, interval = NULL, col_names = SAND

oase

Læs SAS-filen

read_sas ()

sti

oase

Læs STATA-filen

read_stata ()

sti

oase

Læs SPSS fille

read_sav ()

sti

Den følgende tabel viser de forskellige måder at importere et valg med read_excel () -funktionen.

Fungere

Mål

Argumenter

read_excel ()

Læs n antal rækker

n_max = 10

Vælg rækker og kolonner som i Excel

interval = "A1: D10"

Vælg rækker med indekser

interval = cellerækker (1: 3)

Vælg kolonner med bogstaver

interval = celle_koler ("A: C")