Importer data til R: Les CSV-, Excel-, SPSS-, Stata-, SAS-filer

Innholdsfortegnelse:

Anonim

Data kan eksistere i forskjellige formater. For hvert format har R en spesifikk funksjon og argument. Denne veiledningen forklarer hvordan du importerer data til R.

I denne veiledningen vil du lære

  • Les CSV
  • Les Excel-filer
  • readxl_example ()
  • read_excel ()
  • excel_sheets ()
  • Importer data fra annen statistisk programvare
  • Les sas
  • Les STATA
  • Les SPSS
  • Beste fremgangsmåter for dataimport

Les CSV

En av de mest datalagrene er filformatene .csv (komma-atskilte verdier). R laster inn en rekke biblioteker under oppstarten, inkludert utils-pakken. Denne pakken er praktisk å åpne csv-filer kombinert med funksjonen reading.csv (). Her er syntaksen for read.csv

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

Argument :

  • fil : PATH der filen er lagret
  • header : bekreft om filen har en header eller ikke, som standard er headeren satt til SANT
  • sep : symbolet som brukes til å dele variabelen. Som standard `,`.

Vi vil lese datafilnavnet mtcats. CSV-filen lagres online. Hvis .csv-filen din er lagret lokalt, kan du erstatte PATH inne i kodebiten. Ikke glem å pakke den inn ''. PATH må være en strengverdi.

For mac-brukere er banen for nedlastingsmappen:

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

For Windows-brukere:

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

Vær oppmerksom på at vi alltid skal spesifisere utvidelsen av filnavnet.

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

Produksjon:

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

Produksjon:

## [1] "factor"

R returnerer som standard tegnverdier som faktor. Vi kan slå av denne innstillingen ved å legge til 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)

Produksjon:

## [1] "character"

Klassen for variabelen X er nå et tegn.

Les Excel-filer

Excel-filer er veldig populære blant dataanalytikere. Regneark er enkle å jobbe med og fleksible. R er utstyrt med et bibliotek readxl for å importere Excel-regneark.

Bruk denne koden

require(readxl)

for å sjekke om readxl er installert på maskinen din. Hvis du installerer r med r-conda-essential, er biblioteket allerede installert. Du bør se i kommandovinduet:

Produksjon:

Loading required package: readxl. 

Hvis pakken ikke går ut, kan du installere den med conda-biblioteket eller i terminalen, bruk conda install -c mittner r-readxl.

Bruk følgende kommando for å laste inn biblioteket for å importere Excel-filer.

library(readxl)

readxl_example ()

Vi bruker eksemplene som er inkludert i pakken readxl under denne opplæringen.

Bruk kode

readxl_example()

for å se alle tilgjengelige regneark i biblioteket.

For å sjekke plasseringen til regnearket kalt clippy.xls, enkel bruk

readxl_example("geometry.xls")

Hvis du installerer R med konda, ligger regnearkene i Anaconda3 / lib / R / bibliotek / readxl / extdata / filnavn.xls

read_excel ()

Funksjonen read_excel () er til stor nytte når det gjelder å åpne xls og xlsx extention.

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 regneark fra readxl-biblioteket og telle antall kolonner i det første arket.

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

Produksjon:

## [1] 5

excel_sheets ()

Filen datasets.xlsx består av 4 ark. Vi kan finne ut hvilke ark som er tilgjengelige i arbeidsboken ved å bruke excel_sheets () -funksjonen

example <- readxl_example("datasets.xlsx")

excel_sheets(example)

Produksjon:

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

Hvis et regneark inneholder mange ark, er det enkelt å velge et bestemt ark ved å bruke arkargumentene. Vi kan spesifisere navnet på arket eller arkindeksen. Vi kan verifisere om begge funksjonene returnerer den samme utgangen med identisk ().

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

Produksjon:

## [1] TRUE

Vi kan kontrollere hvilke celler som skal leses på to måter

  1. Bruk n_max-argumentet for å returnere n rader
  2. Bruk rekkevidden argument kombinert med cellerader eller cellekoler

For eksempel setter vi n_max tilsvarer 5 for å importere de fem første radene.

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

Hvis vi endrer kolonnenavn til FALSE, oppretter R topptekstene automatisk.

# 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 opprettet R fem nye variabler kalt X__1, X__2, X__3, X__4 og X__5

Vi kan også bruke argumentområdet for å velge rader og kolonner i regnearket. I koden nedenfor bruker vi excel-stilen til å velge området A1 til B5.

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

Produksjon:

## [1] 4 2

Vi kan se at eksemplet_1 returnerer 4 rader med to kolonner. Datasettet har overskrift, at grunnen til at dimensjonen er 4x2.

I det andre eksemplet bruker vi funksjonen cell_rows () som kontrollerer rekkevidden for rader som skal returneres. Hvis vi vil importere radene 1 til 5, kan vi angi cell_rows (1: 5). Merk at, cell_rows (1: 5) returnerer samme utdata 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)

Produksjon:

## [1] 4 5

Eksemplet_2 er imidlertid en 4x5 matrise. Iris-datasettet har 5 kolonner med overskrift. Vi returnerer de første fire radene med overskrift på alle kolonnene

I tilfelle vi ønsker å importere rader som ikke begynner på første rad, må vi ta med col_names = FALSE. Hvis vi bruker range = cell_rows (2: 5), blir det tydelig at datarammen ikke har noen overskrift lenger.

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)

Produksjon:

## [1] 150 2 

Merk: range = cell_cols ("A: B"), returnerer output alle celler med ikke-null verdi. Datasettet inneholder 150 rader, derfor returnerer read_excel () rader opp til 150. Dette bekreftes med dim () -funksjonen.

read_excel () returnerer NA når et symbol uten numerisk verdi vises i cellen. Vi kan telle antall manglende verdier med kombinasjonen av to funksjoner

  1. sum
  2. is.na

Her er koden

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

Produksjon:

## [1] 50

Vi mangler 50 verdier, som er radene som tilhører setosa-arten.

Importer data fra annen statistisk programvare

Vi vil importere forskjellige filformater med himmelpakken. Denne pakken støtter SAS, STATA og SPSS programvare. Vi kan bruke følgende funksjon til å åpne forskjellige typer datasett, i henhold til filtypen:

  • SAS: read_sas ()
  • STATA: read_dta () (eller read_stata (), som er identiske)
  • SPSS: read_sav () eller read_por (). Vi må sjekke utvidelsen

Bare ett argument kreves innen denne funksjonen. Vi trenger å vite stien der filen er lagret. Det er det, vi er klare til å åpne alle filene fra SAS, STATA og SPSS. Disse tre funksjonene godtar også en URL.

library(haven)

havn kommer med conda r-essensielt ellers gå til lenken eller i terminalen conda installere -c conda-forge r-haven

Les sas

For vårt eksempel skal vi bruke opptaksdatasettet fra IDRE.

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

Produksjon:

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

Les STATA

For STATA-datafiler kan du bruke read_dta (). Vi bruker nøyaktig samme datasett, men lagrer 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)

Produksjon:

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

Les SPSS

Vi bruker read_sav () -funksjonen til å åpne en SPSS-fil. Filutvidelsen ".sav"

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

Produksjon:

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

Beste fremgangsmåter for dataimport

Når vi vil importere data til R, er det nyttig å implementere følgende sjekkliste. Det vil gjøre det enkelt å importere data riktig til R:

  • Det typiske formatet for et regneark er å bruke de første radene som topptekst (vanligvis navn på variabler).
  • Unngå å navngi et datasett med blanke mellomrom; det kan føre til tolking som en egen variabel. Alternativt foretrekker du å bruke '_' eller '-.'
  • Korte navn foretrekkes
  • Ikke ta med symbol i navnet: dvs.: exchange_rate _ $ _ € er ikke riktig. Foretrekker å gi den navnet: exchange_rate_dollar_euro
  • Bruk NA for manglende verdier ellers; vi må rense formatet senere.

Sammendrag

Følgende tabell oppsummerer funksjonen som skal brukes for å importere forskjellige filtyper i R. Kolonnen en angir biblioteket relatert til funksjonen. Den siste kolonnen refererer til standardargumentet.

Bibliotek

Objektiv

Funksjon

Standardargumenter

verktøy

Les CSV-fil

read.csv ()

file, header =, TRUE, sep = ","

readxl

Les EXCEL-filen

read_excel ()

path, range = NULL, col_names = TRUE

fristed

Les SAS-filen

read_sas ()

sti

fristed

Les STATA-filen

read_stata ()

sti

fristed

Les SPSS fille

read_sav ()

sti

Følgende tabell viser de forskjellige måtene å importere et utvalg med read_excel () -funksjonen.

Funksjon

Mål

Argumenter

read_excel ()

Les n antall rader

n_max = 10

Velg rader og kolonner som i Excel

range = "A1: D10"

Velg rader med indekser

rekkevidde = cellerader (1: 3)

Velg kolonner med bokstaver

range = cell_cols ("A: C")