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
- Bruk n_max-argumentet for å returnere n rader
- 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
- sum
- 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") |