Podatki bi lahko obstajali v različnih oblikah. Za vsak format R ima določeno funkcijo in argument. Ta vadnica razlaga, kako uvoziti podatke v R.
V tej vadnici boste izvedeli
- Preberite CSV
- Preberite datoteke Excel
- readxl_example ()
- read_excel ()
- excel_sheets ()
- Uvozite podatke iz druge statistične programske opreme
- Preberi sas
- Preberite STATA
- Preberite SPSS
- Najboljše prakse za uvoz podatkov
Preberite CSV
Ena najpogosteje shranjenih podatkov je oblika datoteke .csv (vrednosti, ločene z vejico). R med zagonom naloži vrsto knjižnic, vključno s paketom utils. Ta paket je primeren za odpiranje datotek CSV v kombinaciji s funkcijo read.csv (). Tu je sintaksa za read.csv
read.csv(file, header = TRUE, sep = ",")
Argument :
- datoteka : POT, kjer je datoteka shranjena
- header : potrdite, ali ima datoteka glavo ali ne, privzeto je glava nastavljena na TRUE
- sep : simbol, ki se uporablja za razdelitev spremenljivke. Privzeto je `,`.
Prebrali bomo ime podatkovne datoteke mtcats. Datoteka csv je shranjena v spletu. Če je datoteka .csv shranjena lokalno, lahko PATH nadomestite v delčku kode. Ne pozabite ga zaviti noter ''. PATH mora biti nizna vrednost.
Za uporabnika mac je pot do mape za prenos:
"/Users/USERNAME/Downloads/FILENAME.csv"
Za uporabnika sistema Windows:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Upoštevajte, da moramo vedno določiti končnico imena datoteke.
- .csv
- .xlsx
- .txt
- ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'df <- read.csv(PATH, header = TRUE, sep = ',')length(df)
Izhod:
## [1] 12
class(df$X)
Izhod:
## [1] "factor"
R privzeto vrne vrednosti znakov kot faktor. To nastavitev lahko izklopimo tako, da dodamo 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)
Izhod:
## [1] "character"
Razred za spremenljivko X je zdaj znak.
Preberite datoteke Excel
Datoteke Excel so zelo priljubljene med analitiki podatkov. S preglednicami je enostavno delati in jih prilagoditi. R je opremljen s knjižnico readxl za uvoz Excelove preglednice.
Uporabite to kodo
require(readxl)
da preverite, ali je v vaši napravi nameščen readxl. Če r namestite z r-conda-bistvom, je knjižnica že nameščena. V ukaznem oknu bi morali videti:
Izhod:
Loading required package: readxl.
Če paket ne izstopi, ga lahko namestite s knjižnico conda ali v terminalu, uporabite conda install -c mittner r-readxl.
Z naslednjim ukazom naložite knjižnico za uvoz datotek excel.
library(readxl)
readxl_example ()
V tej vadnici uporabljamo primere, vključene v paket readxl.
Uporabite kodo
readxl_example()
če si želite ogledati vse razpoložljive preglednice v knjižnici.
Če želite preveriti lokacijo preglednice z imenom clippy.xls, preprosto uporabite
readxl_example("geometry.xls")
Če namestite R s condo, se preglednice nahajajo v Anaconda3 / lib / R / library / readxl / extdata / filename.xls
read_excel ()
Funkcija read_excel () je zelo koristna pri odpiranju razširitev xls in xlsx.
Sintaksa je:
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
Preglednice lahko uvozimo iz knjižnice readxl in preštejemo število stolpcev na prvem listu.
# Store the path of `datasets.xlsx`example <- readxl_example("datasets.xlsx")# Import the spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)
Izhod:
## [1] 5
excel_sheets ()
Datoteka datasets.xlsx je sestavljena iz 4 listov. Kateri listi so na voljo v delovnem zvezku, lahko ugotovimo s pomočjo funkcije excel_sheets ()
example <- readxl_example("datasets.xlsx")excel_sheets(example)
Izhod:
[1] "iris" "mtcars" "chickwts" "quakes"
Če delovni list vključuje veliko listov, je z argumenti listov enostavno izbrati določen list. Določimo lahko ime lista ali indeks lista. Preverimo lahko, ali obe funkciji vrneta enak izhod z enakim ().
example <- readxl_example("datasets.xlsx")quake <- read_excel(example, sheet = "quakes")quake_1 <-read_excel(example, sheet = 4)identical(quake, quake_1)
Izhod:
## [1] TRUE
Katere celice naj beremo, lahko nadzorujemo na dva načina
- Za vrnitev n vrstic uporabite argument n_max
- Uporabite argument obsega v kombinaciji z vrsticami celic ali celic_koli
Na primer, n_max nastavimo na 5, da uvozimo prvih pet vrstic.
# Read the first five row: with headeriris <-read_excel(example, n_max =5, col_names =TRUE)
Če spremenimo col_names v FALSE, R samodejno ustvari glave.
# Read the first five row: without headeriris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_no_header
V podatkovnem okviru iris_no_header je R ustvaril pet novih spremenljivk z imenom X__1, X__2, X__3, X__4 in X__5
Obseg argumentov lahko uporabimo tudi za izbiro vrstic in stolpcev v preglednici. V spodnji kodi s slogom excel izberemo obseg od A1 do B5.
# Read rows A1 to B5example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)dim(example_1)
Izhod:
## [1] 4 2
Vidimo lahko, da example_1 vrne 4 vrstice z 2 stolpcema. Nabor podatkov ima glavo, zaradi katere je dimenzija 4x2.
V drugem primeru uporabimo funkcijo cell_rows (), ki nadzoruje obseg vrstic, ki jih je treba vrniti. Če želimo uvoziti vrstice od 1 do 5, lahko nastavimo celice_row (1: 5). Upoštevajte, da cell_rows (1: 5) vrne enak izhod kot cell_rows (5: 1).
# Read rows 1 to 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)
Izhod:
## [1] 4 5
Primer_2 pa je matrika 4x5. Nabor podatkov šarenice ima 5 stolpcev z glavo. Vrnemo prve štiri vrstice z glavo vseh stolpcev
V primeru, da želimo uvoziti vrstice, ki se ne začnejo v prvi vrstici, moramo vključiti col_names = FALSE. Če uporabimo range = cell_rows (2: 5), postane očitno, da naš podatkovni okvir nima več glave.
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)
Izhod:
## [1] 150 2
Opomba: range = cell_cols ("A: B"), vrne izhod vse celice z ne-null vrednostjo. Nabor podatkov vsebuje 150 vrstic, zato read_excel () vrne vrstice do 150. To se preveri s funkcijo dim ().
read_excel () vrne NA, ko se v celici prikaže simbol brez številčne vrednosti. Število manjkajočih vrednosti lahko preštejemo s kombinacijo dveh funkcij
- vsota
- je.na
Tu je koda
iris_na <-read_excel(example, na ="setosa")sum(is.na(iris_na))
Izhod:
## [1] 50
Manjka nam 50 vrednosti, to so vrstice, ki pripadajo vrsti setosa.
Uvozite podatke iz druge statistične programske opreme
S paketom nebes bomo uvozili različne datoteke. Ta paket podpira programsko opremo SAS, STATA in SPSS. Glede na razširitev datoteke lahko za odpiranje različnih vrst nabora podatkov uporabimo naslednjo funkcijo:
- SAS: read_sas ()
- STATA: read_dta () (ali read_stata (), ki sta enaki)
- SPSS: read_sav () ali read_por (). Preveriti moramo podaljšanje
Znotraj te funkcije je potreben samo en argument. Vedeti moramo POT, kjer je datoteka shranjena. To je to, pripravljeni smo odpreti vse datoteke iz SAS, STATA in SPSS. Te tri funkcije sprejemajo tudi URL.
library(haven)
pristanišče je opremljeno s conda r-bistveno, sicer pojdite na povezavo ali v terminalu conda install -c conda-forge r-haven
Preberi sas
Za naš primer bomo uporabili sprejemni niz podatkov iz IDRE.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true'df <- read_sas(PATH_sas)head(df)
Izhod:
## # 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
Preberite STATA
Za podatkovne datoteke STATA lahko uporabite read_dta (). Uporabljamo popolnoma enak nabor podatkov, vendar ga shranimo v datoteko .dta.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true'df <- read_dta(PATH_stata)head(df)
Izhod:
## # 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
Preberite SPSS
Za odpiranje datoteke SPSS uporabljamo funkcijo read_sav (). Razširitev datoteke ".sav"
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true'df <- read_sav(PATH_spss)head(df)
Izhod:
## # 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
Najboljše prakse za uvoz podatkov
Ko želimo uvoziti podatke v R, je koristno izvesti naslednji kontrolni seznam. Poenostavil bo pravilno uvoz podatkov v R:
- Tipična oblika preglednice je uporaba prvih vrstic kot glave (običajno ime spremenljivk).
- Izogibajte poimenovanju nabora podatkov s praznimi presledki; lahko vodi do interpretacije kot ločene spremenljivke. Druga možnost je, da raje uporabite '_' ali '-.'
- Kratka imena so zaželena
- V ime ne vključite simbola: tj: izmenjava_stopa _ $ _ € ni pravilna Raje ga poimenujte: exchange_rate_dollar_euro
- V nasprotnem primeru uporabite NA za manjkajoče vrednosti; obliko moramo očistiti pozneje.
Povzetek
V spodnji tabeli je povzeta funkcija, ki se uporablja za uvoz različnih vrst datotek v R. V prvem stolpcu je navedena knjižnica, povezana s funkcijo. Zadnji stolpec se nanaša na privzeti argument.
Knjižnica |
Cilj |
Funkcija |
Privzeti argumenti |
---|---|---|---|
utils |
Preberite datoteko CSV |
read.csv () |
datoteka, glava =, TRUE, sep = "," |
readxl |
Preberite datoteko EXCEL |
read_excel () |
pot, obseg = NULL, col_names = TRUE |
zatočišče |
Preberite datoteko SAS |
read_sas () |
pot |
zatočišče |
Preberite datoteko STATA |
read_stata () |
pot |
zatočišče |
Preberite SPSS file |
read_sav () |
pot |
Naslednja tabela prikazuje različne načine uvoza izbora s funkcijo read_excel ().
Funkcija |
Cilji |
Argumenti |
---|---|---|
read_excel () |
Preberite n števila vrstic |
n_max = 10 |
Izberite vrstice in stolpce, kot v Excelu |
range = "A1: D10" |
|
Izberite vrstice z indeksi |
obseg = vrstice_ celic (1: 3) |
|
Izberite stolpce s črkami |
range = cell_cols ("A: C") |