Uvoz podataka u R: čitanje CSV, Excel, SPSS, Stata, SAS datoteka
Podaci mogu postojati u različitim formatima. Za svaki format R ima specifičnu funkciju i argument. Ovaj vodič objašnjava kako uvesti podatke u R.
Pročitajte CSV
Jedna od najrasprostranjenijih pohrana podataka je format datoteke .csv (vrijednosti odvojene zarezima). R učitava niz biblioteka tijekom pokretanja, uključujući utils paket. Ovaj je paket prikladan za otvaranje csv datoteka u kombinaciji s funkcijom reading.csv(). Ovdje je sintaksa za read.csv
read.csv(file, header = TRUE, sep = ",")
Argument:
- file: PATH gdje je datoteka pohranjena
- zaglavlje: potvrdite ima li datoteka zaglavlje ili ne, prema zadanim postavkama zaglavlje je postavljeno na TRUE
- rujna: simbol koji se koristi za dijeljenje varijable. Prema zadanim postavkama, `,`.
Pročitat ćemo naziv podatkovne datoteke mtcats. Csv datoteka pohranjena je na mreži. Ako je vaša .csv datoteka pohranjena lokalno, možete zamijeniti PATH unutar isječka koda. Ne zaboravite ga zamotati unutar " ". PATH mora biti vrijednost niza.
Za korisnike Maca, staza za mapu za preuzimanje je:
"/Users/USERNAME/Downloads/FILENAME.csv"
Za korisnike sustava Windows:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Imajte na umu da uvijek trebamo navesti ekstenziju naziva 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)
Izlaz
## [1] 12
class(df$X)
Izlaz
## [1] "factor"
R prema zadanim postavkama vraća vrijednosti znakova kao faktor. Ovu postavku možemo isključiti dodavanjem 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)
Izlaz
## [1] "character"
Klasa za varijablu X sada je znak.
Čitajte Excel datoteke
nadmašiti datoteke su vrlo popularne među analitičarima podataka. S proračunskim tablicama lako je raditi i fleksibilne su. R je opremljen bibliotekom readxl za uvoz Excel proračunske tablice.
Koristite ovaj kod
require(readxl)
da provjerite je li readxl instaliran na vašem stroju. Ako instalirate r s r-conda-essential, biblioteka je već instalirana. Trebali biste vidjeti u naredbenom prozoru:
Izlaz
Loading required package: readxl.
Ako paket ne izađe, možete ga instalirati s condom knjižnica ili u terminalu upotrijebite conda install -c mittner r-readxl.
Koristite sljedeću naredbu za učitavanje biblioteke za uvoz excel datoteka.
library(readxl)
readxl_example()
Tijekom ovog vodiča koristimo se primjerima uključenim u paket readxl.
Upotrijebite kod
readxl_example()
da vidite sve dostupne proračunske tablice u knjižnici.
Da biste provjerili lokaciju proračunske tablice pod nazivom clippy.xls, jednostavno upotrijebite
readxl_example("geometry.xls")
Ako instalirate R s condom, proračunske tablice se nalaze u Anaconda3/lib/R/library/readxl/extdata/filename.xls
read_excel()
Funkcija read_excel() je od velike koristi kada se radi o otvaranju xls i xlsx ekstenzija.
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
Možemo uvesti proračunske tablice iz biblioteke readxl i prebrojati broj stupaca u prvom listu.
# Store the path of `datasets.xlsx` example <- readxl_example("datasets.xlsx") # Import the spreadsheet df <- read_excel(example) # Count the number of columns length(df)
Izlaz
## [1] 5
excel_sheets()
Datoteka datasets.xlsx sastoji se od 4 lista. Pomoću funkcije excel_sheets() možemo saznati koji su listovi dostupni u radnoj knjizi
example <- readxl_example("datasets.xlsx") excel_sheets(example)
Izlaz
[1] "iris" "mtcars" "chickwts" "quakes"
Ako radni list uključuje mnogo listova, lako je odabrati određeni list pomoću argumenata lista. Možemo odrediti naziv lista ili indeks lista. Možemo provjeriti vraćaju li obje funkcije isti izlaz s identical().
example <- readxl_example("datasets.xlsx") quake <- read_excel(example, sheet = "quakes") quake_1 <-read_excel(example, sheet = 4) identical(quake, quake_1)
Izlaz
## [1] TRUE
Možemo kontrolirati koje će ćelije čitati na 2 načina
- Koristite argument n_max za vraćanje n redaka
- Koristite argument raspona u kombinaciji s cell_rows ili cell_cols
Na primjer, postavili smo n_max jednako 5 za uvoz prvih pet redaka.
# Read the first five row: with header iris <-read_excel(example, n_max =5, col_names =TRUE)
Ako promijenimo col_names u FALSE, R automatski stvara zaglavlja.
# Read the first five row: without header iris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_bez_zaglavlja
U podatkovnom okviru iris_no_header, R je stvorio pet novih varijabli pod nazivom X__1, X__2, X__3, X__4 i X__5
Također možemo koristiti raspon argumenata za odabir redaka i stupaca u proračunskoj tablici. U donjem kodu koristimo excel stil za odabir raspona od A1 do B5.
# Read rows A1 to B5 example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE) dim(example_1)
Izlaz
## [1] 4 2
Vidimo da primjer_1 vraća 4 retka s 2 stupca. Skup podataka ima zaglavlje, zbog čega je dimenzija 4×2.
U drugom primjeru koristimo funkciju cell_rows() koja kontrolira raspon redaka za vraćanje. Ako želimo uvesti retke od 1 do 5, možemo postaviti cell_rows(1:5). Imajte na umu da cell_rows(1:5) vraća isti izlaz kao cell_rows(5:1).
# Read rows 1 to 5 example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE) dim(example_2)
Izlaz
## [1] 4 5
Međutim, primjer_2 je matrica 4×5. Skup podataka šarenice ima 5 stupaca sa zaglavljem. Vraćamo prva četiri retka sa zaglavljem svih stupaca
U slučaju da želimo uvesti retke koji ne počinju prvim redom, moramo uključiti col_names = FALSE. Ako koristimo range = cell_rows(2:5), postaje očito da naš podatkovni okvir više nema zaglavlje.
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 B col <-read_excel(example, range =cell_cols("A:B")) dim(col)
Izlaz
## [1] 150 2
Napomena: raspon = cell_cols(“A:B”), vraća izlaz svih ćelija s vrijednošću koja nije nula. Skup podataka sadrži 150 redaka, stoga read_excel() vraća retke do 150. To se potvrđuje funkcijom dim().
read_excel() vraća NA kada se u ćeliji pojavi simbol bez numeričke vrijednosti. Kombinacijom dviju funkcija možemo izračunati broj vrijednosti koje nedostaju
- iznos
- je.na
Evo koda
iris_na <-read_excel(example, na ="setosa") sum(is.na(iris_na))
Izlaz
## [1] 50
Nedostaje nam 50 vrijednosti, a to su redovi koji pripadaju vrsti setosa.
Uvoz podataka iz drugog statističkog softvera
Uvest ćemo različite formate datoteka s paketom Heaven. Ovaj paket podrške SAS, STATA i SPSS softver. Sljedeću funkciju možemo koristiti za otvaranje različitih vrsta skupova podataka, ovisno o ekstenziji datoteke:
- SAS: read_sas()
- STATA: read_dta() (ili read_stata(), koji su identični)
- SPSS: read_sav() ili read_por(). Moramo provjeriti proširenje
Potreban je samo jedan argument unutar ove funkcije. Moramo znati PATH gdje je datoteka pohranjena. To je to, spremni smo za otvaranje svih datoteka iz SAS, STATA i SPSS. Ove tri funkcije prihvaćaju i URL.
library(haven)
utočište dolazi s conda r-essential inače idite na link ili u terminalu conda install -c conda-forge r-haven
Pročitaj sas
Za naš primjer koristit ćemo skup podataka o prijemu iz IDRE-a.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true' df <- read_sas(PATH_sas) head(df)
Izlaz
## # A tibble: 6 x 4 ## ADMIT GRE GPA RANK ## <dbl> <dbl> <dbl> <dbl> ## 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
Pročitaj STATA
Za STATA podatkovne datoteke možete koristiti read_dta(). Koristimo potpuno isti skup podataka, ali pohranjujemo u .dta datoteku.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true' df <- read_dta(PATH_stata) head(df)
Izlaz
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 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
Čitajte SPSS
Za otvaranje SPSS datoteke koristimo funkciju read_sav(). Ekstenzija datoteke ".sav"
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true' df <- read_sav(PATH_spss) head(df)
Izlaz
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 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
Najbolji primjeri iz prakse za uvoz podataka
Kada želimo uvesti podatke u R, korisno je implementirati sljedeći kontrolni popis. To će olakšati točan uvoz podataka u R:
- Tipičan format za proračunsku tablicu je korištenje prvih redaka kao zaglavlja (obično naziv varijable).
- Izbjegavajte imenovanje skupa podataka s praznim mjestima; može dovesti do tumačenja kao zasebne varijable. Umjesto toga, radije upotrijebite '_' ili '-.'
- Poželjna su kratka imena
- Nemojte uključivati simbol u ime: npr. tečaj_valute_$_€ nije točan. Radije ga nazovite: exchange_rate_dollar_euro
- Koristite NA za vrijednosti koje nedostaju inače; moramo kasnije očistiti format.
Rezime
Sljedeća tablica sažima funkciju koju treba koristiti za uvoz različitih vrsta datoteka u R. Prvi stupac navodi biblioteku povezanu s funkcijom. Zadnji stupac odnosi se na zadani argument.
Knjižnica | Cilj | funkcija | Zadani argumenti |
---|---|---|---|
utils | Pročitajte CSV datoteku | pročitaj.csv() | datoteka, zaglavlje =,TRUE, sep = “,” |
readxl | Pročitajte EXCEL datoteku | read_excel() | put, raspon = NULL, imena_kolaca = TRUE |
utočište | Pročitaj SAS datoteku | read_sas() | put |
utočište | Pročitaj STATA datoteku | read_stata() | put |
utočište | Pročitajte SPSS datoteku | read_sav() | put |
Sljedeća tablica prikazuje različite načine uvoza odabira pomoću funkcije read_excel().
funkcija | Cilj | argumenti |
---|---|---|
read_excel() | Pročitajte n redaka | n_max = 10 |
Odaberite retke i stupce kao u excelu | raspon = “A1:D10” | |
Odaberite retke s indeksima | raspon= redovi_ćelija(1:3) | |
Odaberite stupce sa slovima | raspon = cell_cols(“A:C”) |