Údaje môžu existovať v rôznych formátoch. Pre každý formát má R špecifickú funkciu a argument. Tento tutoriál vysvetľuje, ako importovať údaje do R.
V tomto návode sa naučíte
- Prečítajte si CSV
- Čítajte súbory programu Excel
- readxl_example ()
- read_excel ()
- excel_sheets ()
- Importujte údaje z iného štatistického softvéru
- Prečítajte si sas
- Prečítajte si STATA
- Prečítajte si SPSS
- Osvedčené postupy pre import údajov
Prečítajte si CSV
Jedným z najrozšírenejších dátových úložísk sú formáty súborov .csv (hodnoty oddelené čiarkou). Počas načítania R načíta pole knižníc vrátane balíka utils. Tento balík je vhodný na otváranie súborov CSV kombinovaných s funkciou reading.csv (). Tu je syntax súboru read.csv
read.csv(file, header = TRUE, sep = ",")
Argument :
- file : PATH, kde je súbor uložený
- hlavička : potvrdí, či má súbor hlavičku alebo nie, v predvolenom nastavení je hlavička nastavená na TRUE
- sep : symbol použitý na rozdelenie premennej. Predvolene `,`.
Budeme čítať názov dátového súboru mtcats. Súbor CSV je uložený online. Ak je váš súbor .csv uložený lokálne, môžete nahradiť PATH v útržku kódu. Nezabudnite to zabaliť dovnútra “. PATH musí byť reťazcová hodnota.
Pre používateľov počítačov Mac je cesta k priečinku na stiahnutie:
"/Users/USERNAME/Downloads/FILENAME.csv"
Pre používateľov systému Windows:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Upozorňujeme, že by sme mali vždy určiť príponu názvu súboru.
- .csv
- .xlsx
- .TXT
- …
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'df <- read.csv(PATH, header = TRUE, sep = ',')length(df)
Výkon:
## [1] 12
class(df$X)
Výkon:
## [1] "factor"
R, v predvolenom nastavení, vracia hodnoty znakov ako faktor. Toto nastavenie môžeme vypnúť pridaním reťazca 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)
Výkon:
## [1] "character"
Triedou pre premennú X je teraz znak.
Čítajte súbory programu Excel
Súbory Excel sú medzi analytikmi dát veľmi populárne. S tabuľkami sa pracuje ľahko a sú flexibilné. R je vybavený knižnicou readxl na import tabuľky Excel.
Použite tento kód
require(readxl)
skontrolovať, či je vo vašom počítači nainštalovaný súbor readxl. Ak inštalujete r s r-conda-essential, knižnica je už nainštalovaná. V príkazovom okne by ste mali vidieť:
Výkon:
Loading required package: readxl.
Ak sa balík neopustí, môžete ho nainštalovať pomocou knižnice conda alebo do terminálu, použite conda install -c mittner r-readxl.
Pomocou nasledujúceho príkazu načítajte knižnicu a importujte súbory programu Excel.
library(readxl)
readxl_example ()
Počas tohto tutoriálu používame príklady obsiahnuté v balíku readxl.
Použite kód
readxl_example()
a zobrazia sa všetky dostupné tabuľky v knižnici.
Jednoduché umiestnenie môžete skontrolovať pomocou tabuľky s názvom clippy.xls
readxl_example("geometry.xls")
Ak inštalujete R s conda, tabuľky sa nachádzajú v Anaconda3 / lib / R / library / readxl / extdata / filename.xls
read_excel ()
Funkcia read_excel () je veľmi užitočná pri otváraní rozšírení xls a xlsx.
Syntax 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
Môžeme importovať tabuľky z knižnice readxl a spočítať počet stĺpcov v prvom hárku.
# Store the path of `datasets.xlsx`example <- readxl_example("datasets.xlsx")# Import the spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)
Výkon:
## [1] 5
excel_sheets ()
Súbor datasets.xlsx sa skladá zo 4 hárkov. Pomocou funkcie excel_sheets () môžeme zistiť, ktoré listy sú v zošite k dispozícii
example <- readxl_example("datasets.xlsx")excel_sheets(example)
Výkon:
[1] "iris" "mtcars" "chickwts" "quakes"
Ak pracovný hárok obsahuje veľa hárkov, je ľahké vybrať konkrétny hárok pomocou argumentov hárka. Môžeme určiť názov hárku alebo index hárka. Môžeme overiť, či obidve funkcie vracajú rovnaký výstup s totožnou ().
example <- readxl_example("datasets.xlsx")quake <- read_excel(example, sheet = "quakes")quake_1 <-read_excel(example, sheet = 4)identical(quake, quake_1)
Výkon:
## [1] TRUE
To, čo bunky majú čítať, môžeme ovládať dvoma spôsobmi
- Na vrátenie n riadkov použite argument n_max
- Použite argument rozsahu v kombinácii s cell_rows alebo cell_cols
Napríklad nastavíme n_max sa rovná 5, aby sa importovalo prvých päť riadkov.
# Read the first five row: with headeriris <-read_excel(example, n_max =5, col_names =TRUE)
Ak zmeníme col_names na FALSE, R vytvorí hlavičky automaticky.
# Read the first five row: without headeriris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_no_header
V dátovom rámci iris_no_header vytvoril R päť nových premenných s názvom X__1, X__2, X__3, X__4 a X__5
Na výber riadkov a stĺpcov v tabuľke môžeme použiť aj rozsah argumentov. V nižšie uvedenom kóde používame štýl programu Excel na výber rozsahu A1 až B5.
# Read rows A1 to B5example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)dim(example_1)
Výkon:
## [1] 4 2
Vidíme, že príklad_1 vracia 4 riadky s 2 stĺpcami. Dataset má hlavičku, ktorá má rozmer 4x2.
V druhom príklade používame funkciu cell_rows (), ktorá riadi rozsah riadkov, ktoré sa majú vrátiť. Ak chceme importovať riadky 1 až 5, môžeme nastaviť cell_rows (1: 5). Upozorňujeme, že funkcia cell_rows (1: 5) vracia rovnaký výstup ako cell_rows (5: 1).
# Read rows 1 to 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)
Výkon:
## [1] 4 5
Príkladom_2 je však matica 4x5. Sada údajov o dúhovke má 5 stĺpcov s hlavičkou. Prvé štyri riadky vrátime so záhlavím všetkých stĺpcov
V prípade, že chceme importovať riadky, ktoré sa nezačínajú od prvého riadku, musíme zahrnúť col_names = FALSE. Ak použijeme range = cell_rows (2: 5), je zrejmé, že náš dátový rámec už nemá hlavičku.
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)
Výkon:
## [1] 150 2
Poznámka: range = cell_cols ("A: B"), vráti výstup všetkých buniek s nenulovou hodnotou. Dátová sada obsahuje 150 riadkov, preto read_excel () vráti riadky až 150. Toto sa overuje funkciou dim ().
read_excel () vráti NA, keď sa v bunke objaví symbol bez číselnej hodnoty. Počet chýbajúcich hodnôt môžeme spočítať kombináciou dvoch funkcií
- súčet
- is.na
Tu je kód
iris_na <-read_excel(example, na ="setosa")sum(is.na(iris_na))
Výkon:
## [1] 50
Chýba nám 50 hodnôt, čo sú riadky patriace k druhu setosa.
Importujte údaje z iného štatistického softvéru
S balíkom heaven importujeme rôzne formáty súborov. Tento balík podporuje softvér SAS, STATA a SPSS. Nasledujúcu funkciu môžeme použiť na otvorenie rôznych typov množiny údajov podľa prípony súboru:
- SAS: read_sas ()
- STATA: read_dta () (alebo read_stata (), ktoré sú identické)
- SPSS: read_sav () alebo read_por (). Musíme skontrolovať rozšírenie
V rámci tejto funkcie je vyžadovaný iba jeden argument. Musíme poznať CESTU, kde je súbor uložený. To je všetko, sme pripravení otvoriť všetky súbory zo SAS, STATA a SPSS. Tieto tri funkcie akceptujú aj URL.
library(haven)
útočisko je dodávané s conda r-essential, inak choďte na odkaz alebo do terminálu conda install -c conda-forge r-haven
Prečítajte si sas
Pre náš príklad použijeme množinu údajov o prijatí z IDRE.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true'df <- read_sas(PATH_sas)head(df)
Výkon:
## # 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
Prečítajte si STATA
Pre dátové súbory STATA môžete použiť read_dta (). Používame presne ten istý súbor údajov, ale ukladáme ho do súboru .dta.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true'df <- read_dta(PATH_stata)head(df)
Výkon:
## # 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
Prečítajte si SPSS
Na otvorenie súboru SPSS používame funkciu read_sav (). Prípona súboru „.sav“
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true'df <- read_sav(PATH_spss)head(df)
Výkon:
## # 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
Osvedčené postupy pre import údajov
Ak chceme importovať dáta do R, je užitočné implementovať nasledujúci kontrolný zoznam. Uľahčí to správny import údajov do R:
- Typickým formátom tabuľky je použitie prvých riadkov ako hlavičky (zvyčajne názov premenných).
- Nezamieňajte množinu údajov s prázdnymi medzerami; môže to viesť k interpretácii ako samostatnej premennej. Prípadne radšej použite „_“ alebo „-.“
- Uprednostňujú sa krátke mená
- Do názvu neuvádzajte symbol: tj. Výmenná_sadzba _ $ _ € nie je správna. Radšej to pomenujte: exchange_rate_dollar_euro
- V opačnom prípade použite NA pre chýbajúce hodnoty; musíme formát neskôr vyčistiť.
Zhrnutie
Nasledujúca tabuľka sumarizuje funkciu, ktorá sa má použiť na import rôznych typov súborov do R. V prvom stĺpci sa uvádza knižnica súvisiaca s funkciou. Posledný stĺpec odkazuje na predvolený argument.
Knižnica |
Cieľ |
Funkcia |
Predvolené argumenty |
---|---|---|---|
náradie |
Prečítajte si súbor CSV |
read.csv () |
súbor, hlavička =, TRUE, sep = "," |
readxl |
Prečítajte si súbor EXCEL |
read_excel () |
cesta, rozsah = NULL, col_names = TRUE |
útočisko |
Prečítajte si súbor SAS |
read_sas () |
cesta |
útočisko |
Prečítajte si súbor STATA |
read_stata () |
cesta |
útočisko |
Prečítajte si SPSS fille |
read_sav () |
cesta |
Nasledujúca tabuľka zobrazuje rôzne spôsoby importovania výberu pomocou funkcie read_excel ().
Funkcia |
Ciele |
Argumenty |
---|---|---|
read_excel () |
Prečítajte si n počet riadkov |
n_max = 10 |
Vyberte riadky a stĺpce ako v programe Excel |
rozsah = "A1: D10" |
|
Vyberte riadky s indexmi |
range = cell_rows (1: 3) |
|
Vyberte stĺpce s písmenami |
range = cell_cols ("A: C") |