Adatok importálása R-ben: CSV, Excel, SPSS, Stata, SAS fájlok olvasása
Az adatok különféle formátumokban létezhetnek. Minden formátumhoz R meghatározott funkciója és argumentuma van. Ez az oktatóanyag elmagyarázza, hogyan importálhat adatokat R-be.
Olvassa el a CSV-t
Az egyik legelterjedtebb adattár a .csv (vesszővel elválasztott értékek) fájlformátum. Az R egy sor könyvtárat tölt be az indítás során, beleértve a utils csomagot is. Ez a csomag kényelmes csv fájlok megnyitásához a read.csv() függvénnyel kombinálva. Íme a read.csv szintaxisa
read.csv(file, header = TRUE, sep = ",")
Érv:
- filé: PATH, ahol a fájl tárolva van
- header: annak megerősítése, hogy a fájlnak van-e fejléce vagy sem, alapértelmezés szerint a fejléc TRUE értékre van állítva
- szeptember: a változó felosztására használt szimbólum. Alapértelmezés szerint `,`.
Az mtcats adatfájl nevét fogjuk beolvasni. A csv fájl online tárolása. Ha a .csv fájl helyben van tárolva, lecserélheti a kódrészleten belüli PATH-t. Ne felejtse el becsomagolni a ' ' belsejébe. A PATH-nak karakterlánc-értéknek kell lennie.
Mac felhasználó esetén a letöltési mappa elérési útja a következő:
"/Users/USERNAME/Downloads/FILENAME.csv"
Windows felhasználóknak:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Vegye figyelembe, hogy mindig meg kell adnunk a fájlnév kiterjesztését.
- . Csv
- . Xlsx
- . Txt
- ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <- read.csv(PATH, header = TRUE, sep = ',') length(df)
teljesítmény
## [1] 12
class(df$X)
teljesítmény
## [1] "factor"
Az R alapértelmezés szerint a karakterértékeket faktorként adja vissza. Ezt a beállítást a stringsAsFactors = FALSE hozzáadásával kapcsolhatjuk ki.
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE) class(df$X)
teljesítmény
## [1] "character"
Az X változó osztálya most egy karakter.
Olvasson Excel fájlokat
Excel fájlok nagyon népszerűek az adatelemzők körében. A táblázatok könnyen kezelhetők és rugalmasak. Az R egy readxl könyvtárral van felszerelve az Excel táblázat importálásához.
Használja ezt a kódot
require(readxl)
hogy ellenőrizze, hogy a readxl telepítve van-e a gépen. Ha az r-t az r-conda-essential elemmel telepíti, a könyvtár már telepítve van. A parancsablakban látnia kell:
teljesítmény
Loading required package: readxl.
Ha a csomag nem lép ki, telepítheti a condával könyvtár vagy a terminálban használja a conda install -c mittner r-readxl parancsot.
A következő paranccsal töltse be a könyvtárat az Excel fájlok importálásához.
library(readxl)
readxl_example()
Ebben az oktatóanyagban a readxl csomagban található példákat használjuk.
Kóddal
readxl_example()
a könyvtár összes elérhető táblázatának megtekintéséhez.
A clippy.xls nevű táblázat helyének ellenőrzéséhez egyszerűen használja
readxl_example("geometry.xls")
Ha az R-t conda-val telepíti, a táblázatok az Anaconda3/lib/R/library/readxl/extdata/filename.xls fájlban találhatók.
read_excel()
A read_excel() függvény nagyon hasznos az xls és az xlsx kiterjesztések megnyitásakor.
A szintaxis:
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
A readxl könyvtárból importálhatjuk a táblázatokat, és megszámolhatjuk az első lapon lévő oszlopok számát.
# 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)
teljesítmény
## [1] 5
excel_sheets()
A datasets.xlsx fájl 4 lapból áll. Az excel_sheets() függvény segítségével megtudhatjuk, hogy mely lapok érhetők el a munkafüzetben
example <- readxl_example("datasets.xlsx")
excel_sheets(example)
teljesítmény
[1] "iris" "mtcars" "chickwts" "quakes"
Ha egy munkalap sok lapot tartalmaz, könnyen kiválasztható egy adott munkalap a lap argumentumaival. Megadhatjuk a lap nevét vagy a lap indexét. Ellenőrizhetjük, hogy mindkét függvény ugyanazt a kimenetet adja-e vissza az identical()-al.
example <- readxl_example("datasets.xlsx")
quake <- read_excel(example, sheet = "quakes")
quake_1 <-read_excel(example, sheet = 4)
identical(quake, quake_1)
teljesítmény
## [1] TRUE
Kétféleképpen szabályozhatjuk, hogy mely cellákat olvassuk
- Használja az n_max argumentumot n sor visszaadásához
- Használja a tartomány argumentumot a cell_rows vagy cell_cols paraméterekkel kombinálva
Például az n_max értéket 5-tel állítjuk be az első öt sor importálásához.
# Read the first five row: with header iris <-read_excel(example, n_max =5, col_names =TRUE)
Ha az oszlopneveket FALSE-ra változtatjuk, az R automatikusan létrehozza a fejléceket.
# Read the first five row: without header iris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_no_header
Az iris_no_header adatkeretben R öt új változót hozott létre X__1, X__2, X__3, X__4 és X__5 néven.
Az argumentumtartományt használhatjuk sorok és oszlopok kiválasztására is a táblázatban. Az alábbi kódban az excel stílust használjuk az A1-től B5-ig terjedő tartomány kiválasztásához.
# Read rows A1 to B5 example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE) dim(example_1)
teljesítmény
## [1] 4 2
Láthatjuk, hogy a példa_1 4 sort ad vissza 2 oszloppal. Az adatkészletnek van fejléce, ami miatt a dimenzió 4×2.
A második példában a cell_rows() függvényt használjuk, amely szabályozza a visszaadandó sorok tartományát. Ha importálni szeretnénk az 1-től 5-ig terjedő sorokat, beállíthatjuk a cell_rows(1:5) értéket. Vegye figyelembe, hogy a cell_rows(1:5) ugyanazt a kimenetet adja vissza, mint a 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)
teljesítmény
## [1] 4 5
A példa_2 azonban egy 4×5-ös mátrix. Az írisz adatkészlet 5 oszlopból áll fejléccel. Az első négy sort az összes oszlop fejlécével adjuk vissza
Abban az esetben, ha olyan sorokat szeretnénk importálni, amelyek nem az első sorban kezdődnek, akkor a következőt kell megadnunk: col_names = FALSE. Ha a range = cell_rows(2:5) értéket használjuk, akkor nyilvánvalóvá válik, hogy adatkeretünknek már nincs fejléce.
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)
teljesítmény
## [1] 150 2
Megjegyzés: tartomány = cell_cols(“A:B”), visszaadja az összes nem nulla értékű cellát. Az adatkészlet 150 sort tartalmaz, ezért a read_excel() legfeljebb 150 sorokat ad vissza. Ezt a dim() függvénnyel ellenőrizzük.
A read_excel() NA-t ad vissza, ha számérték nélküli szimbólum jelenik meg a cellában. A hiányzó értékek számát két függvény kombinációjával tudjuk megszámolni
- összeg
- is.na
Itt a kód
iris_na <-read_excel(example, na ="setosa") sum(is.na(iris_na))
teljesítmény
## [1] 50
50 értékünk hiányzik, ezek a setosa fajokhoz tartozó sorok.
Adatok importálása más statisztikai szoftverekből
Különféle fájlformátumokat fogunk importálni a mennyország csomaggal. Ez a csomag támogatása SAS, STATA és SPSS szoftverek. A következő függvényt használhatjuk különböző típusú adatkészletek megnyitására, a fájl kiterjesztésének megfelelően:
- SAS: read_sas()
- STATA: read_dta() (vagy read_stata(), amelyek azonosak)
- SPSS: read_sav() vagy read_por(). Ellenőriznünk kell a bővítményt
Ezeken a függvényeken belül csak egy argumentum szükséges. Tudnunk kell a PATH-t, ahol a fájl tárolva van. Ennyi, készen állunk a SAS, a STATA és az SPSS összes fájljának megnyitására. Ez a három függvény egy URL-t is elfogad.
library(haven)
haven jön conda r-essential különben megy a link vagy a conda terminálba telepítse a -c conda-forge r-haven
Olvasd sas
Példánkban az IDRE felvételi adatkészletét fogjuk használni.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true' df <- read_sas(PATH_sas) head(df)
teljesítmény
## # 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
Olvassa el a STATA-t
A STATA adatfájlokhoz használhatja a read_dta() parancsot. Pontosan ugyanazt az adatkészletet használjuk, de .dta fájlban tároljuk.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true' df <- read_dta(PATH_stata) head(df)
teljesítmény
## # 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
Olvassa el az SPSS-t
Az SPSS fájl megnyitásához a read_sav() függvényt használjuk. A „.sav” fájl kiterjesztése
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true' df <- read_sav(PATH_spss) head(df)
teljesítmény
## # 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
Az adatimportálás bevált módszerei
Amikor adatokat akarunk importálni R-be, hasznos az alábbi ellenőrzőlista alkalmazása. Ez megkönnyíti az adatok helyes importálását az R-be:
- A táblázatok tipikus formátuma az első sorok használata fejlécként (általában a változók neve).
- Kerülje az adatkészletek szóközökkel történő elnevezését; külön változóként való értelmezéshez vezethet. Alternatív megoldásként használjon '_' vagy '-' jelet.
- A rövid neveket részesítik előnyben
- Ne használjon szimbólumot a névben: azaz: az árfolyam_$_€ nem helyes. Inkább nevezd el: árfolyam_dollár_euro
- Ellenkező esetben használjon NA-t a hiányzó értékekhez; később meg kell tisztítanunk a formátumot.
Összegzésként
A következő táblázat összefoglalja a különböző típusú fájlok importálásához használandó függvényt az R-ben. Az első oszlop a függvényhez kapcsolódó könyvtárat tartalmazza. Az utolsó oszlop az alapértelmezett argumentumra vonatkozik.
| könyvtár | Objektív | Funkció | Alapértelmezett argumentumok |
|---|---|---|---|
| hasznos | Olvassa el a CSV-fájlt | read.csv() | file, header =,TRUE, sep = "," |
| readxl | Olvassa el az EXCEL fájlt | read_excel() | elérési út, tartomány = NULL, oszlopnevek = IGAZ |
| kikötő | Olvassa el a SAS fájlt | read_sas() | ösvény |
| kikötő | Olvassa el a STATA fájlt | read_stata() | ösvény |
| kikötő | Olvassa el az SPSS-t | read_sav() | ösvény |
A következő táblázat bemutatja a kijelölés importálásának különböző módjait a read_excel() függvénnyel.
| Funkció | Objektív | érvek |
|---|---|---|
| read_excel() | Olvasson n számú sort | n_max = 10 |
| Válassza ki a sorokat és oszlopokat, mint az Excelben | tartomány = "A1:D10" | |
| Válassza ki az indexeket tartalmazó sorokat | tartomány= cella_sorok(1:3) | |
| Jelölje ki a betűket tartalmazó oszlopokat | tartomány = cella_cols("A:C") |







