Andmete importimine R-is: lugege CSV-, Exceli-, SPSS-, Stata-, SAS-faile
Andmed võivad olla erinevates vormingutes. Iga formaadi jaoks R omab spetsiifilist funktsiooni ja argumenti. See õpetus selgitab, kuidas importida andmeid R-i.
Lugege CSV-d
Üks levinumaid andmesalve on .csv (komaeraldusega väärtused) failivormingud. R laadib käivitamise ajal hulga teeke, sealhulgas paketti utilis. See pakett on mugav csv-failide avamiseks koos funktsiooniga read.csv(). Siin on read.csv süntaks
read.csv(file, header = TRUE, sep = ",")
Argument:
- fail: PATH, kuhu fail on salvestatud
- päise kaudu: kinnitage, kas failil on päis või mitte, vaikimisi on päis seatud väärtusele TRUE
- september: sümbol, mida kasutatakse muutuja poolitamiseks. Vaikimisi `,`.
Loeme andmefaili nime mtcats. CSV-faili salvestatakse võrgus. Kui teie .csv-fail on salvestatud kohapeal, saate koodilõigu sees oleva PATH-i asendada. Ärge unustage seda ' ' sisse mähkida. PATH peab olema stringi väärtus.
Maci kasutaja jaoks on allalaadimiskausta tee:
"/Users/USERNAME/Downloads/FILENAME.csv"
Windowsi kasutajale:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Pange tähele, et me peaksime alati määrama failinime laiendi.
- . CSV
- . XLSX
- Subtiitrid.
- ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <- read.csv(PATH, header = TRUE, sep = ',') length(df)
Väljund
## [1] 12
class(df$X)
Väljund
## [1] "factor"
Vaikimisi tagastab R tähemärgi väärtused tegurina. Saame selle sätte välja lülitada, lisades 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äljund
## [1] "character"
Muutuja X klass on nüüd märk.
Loe Exceli faile
Excel failid on andmeanalüütikute seas väga populaarsed. Arvutustabelitega on lihtne töötada ja need on paindlikud. R on varustatud teegiga readxl Exceli arvutustabeli importimiseks.
Kasutage seda koodi
require(readxl)
et kontrollida, kas readxl on teie masinasse installitud. Kui installite r koos r-conda-essentialiga, on teek juba installitud. Peaksite nägema käsuaknas:
Väljund
Loading required package: readxl.
Kui pakett ei välju, saate selle koos condaga installida raamatukogu või terminalis kasutage conda install -c mittner r-readxl.
Exceli failide importimiseks teegi laadimiseks kasutage järgmist käsku.
library(readxl)
readxl_example()
Kasutame selle õpetuse ajal paketis readxl sisalduvaid näiteid.
Kasutage koodi
readxl_example()
et näha kõiki raamatukogus saadaolevaid arvutustabeleid.
Arvutustabeli clippy.xls asukoha kontrollimiseks kasutage seda lihtsalt
readxl_example("geometry.xls")
Kui installite R koos condaga, asuvad arvutustabelid Anaconda3/lib/R/library/readxl/extdata/filename.xls
read_excel()
Funktsioon read_excel() on xls-i ja xlsx-laienduse avamisel väga kasulik.
Süntaks on:
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
Saame importida arvutustabeleid readxl-i teegist ja lugeda veergude arvu esimesel lehel.
# 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)
Väljund
## [1] 5
excel_sheets()
Fail datasets.xlsx koosneb neljast lehest. Funktsiooni excel_sheets() abil saame teada, millised lehed on töövihikus saadaval
example <- readxl_example("datasets.xlsx")
excel_sheets(example)
Väljund
[1] "iris" "mtcars" "chickwts" "quakes"
Kui tööleht sisaldab palju lehti, on konkreetse lehe valimine lehe argumentide abil lihtne. Saame määrata lehe nime või leheindeksi. Saame kontrollida, kas mõlemad funktsioonid tagastavad sama väljundi funktsiooniga identical ().
example <- readxl_example("datasets.xlsx")
quake <- read_excel(example, sheet = "quakes")
quake_1 <-read_excel(example, sheet = 4)
identical(quake, quake_1)
Väljund
## [1] TRUE
Saame kontrollida, milliseid rakke lugeda kahel viisil
- Kasutage n rea tagastamiseks argumenti n_max
- Kasutage vahemiku argumenti koos väärtustega cell_rows või cell_cols
Näiteks määrame esimese viie rea importimiseks n_max väärtuseks 5.
# Read the first five row: with header iris <-read_excel(example, n_max =5, col_names =TRUE)
Kui muudame veergude_nimed väärtuseks FALSE, loob R päised automaatselt.
# Read the first five row: without header iris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_no_header
Andmeraamis iris_no_header lõi R viis uut muutujat nimedega X__1, X__2, X__3, X__4 ja X__5
Argumendivahemikku saame kasutada ka arvutustabelis ridade ja veergude valimiseks. Allolevas koodis kasutame vahemiku A1 kuni B5 valimiseks Exceli stiili.
# Read rows A1 to B5 example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE) dim(example_1)
Väljund
## [1] 4 2
Näeme, et näide_1 tagastab 4 rida 2 veeruga. Andmestikul on päis, mille põhjuseks on mõõde 4 × 2.
Teises näites kasutame funktsiooni cell_rows(), mis juhib tagastatavate ridade vahemikku. Kui tahame importida ridu 1 kuni 5, saame määrata lahtri_read(1:5). Pange tähele, et lahtri_read(1:5) tagastab sama väljundi kui 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)
Väljund
## [1] 4 5
Näide_2 on aga 4 × 5 maatriks. Iirise andmestikul on 5 päisega veergu. Tagastame esimesed neli rida kõigi veergude päistega
Kui tahame importida ridu, mis ei alga esimesest reast, peame lisama veergude_nimed = FALSE. Kui kasutame vahemik = cell_rows(2:5), on ilmne, et meie andmeraamil pole enam päist.
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)
Väljund
## [1] 150 2
Märkus: vahemik = cell_cols(“A:B”), tagastab kõik lahtrid, mille väärtus ei ole null. Andmekogum sisaldab 150 rida, seetõttu tagastab read_excel() kuni 150 rida. Seda kontrollitakse funktsiooniga dim().
read_excel() tagastab NA, kui lahtrisse ilmub ilma numbrilise väärtuseta sümbol. Puuduvate väärtuste arvu saame lugeda kahe funktsiooni kombinatsiooniga
- summa
- is.na
Siin on kood
iris_na <-read_excel(example, na ="setosa") sum(is.na(iris_na))
Väljund
## [1] 50
Meil on puudu 50 väärtust, mis on setosa liiki kuuluvad read.
Importige andmeid muust statistikatarkvarast
Taevapaketiga impordime erinevaid failivorminguid. Selle paketi tugi SAS, STATA ja SPSS tarkvara. Erinevat tüüpi andmekogumite avamiseks saame kasutada järgmist funktsiooni, olenevalt faili laiendist:
- SAS: read_sas()
- STATA: read_dta() (või read_stata(), mis on identsed)
- SPSS: read_sav() või read_por(). Peame laiendust kontrollima
Nende funktsioonide sees on nõutav ainult üks argument. Peame teadma PATH-i, kuhu fail on salvestatud. See on kõik, oleme valmis avama kõik failid SAS-ist, STATA-st ja SPSS-ist. Need kolm funktsiooni aktsepteerivad ka URL-i.
library(haven)
haven kaasas conda r-essential muidu minge the link või terminali conda install -c conda-forge r-haven
Loe sas
Meie näites kasutame IDRE sissepääsuandmestikku.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true' df <- read_sas(PATH_sas) head(df)
Väljund
## # 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
Loe STATA
STATA andmefailide jaoks saate kasutada read_dta(). Kasutame täpselt sama andmestikku, kuid salvestame .dta-failis.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true' df <- read_dta(PATH_stata) head(df)
Väljund
## # 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
Lugege SPSS-i
SPSS-faili avamiseks kasutame funktsiooni read_sav(). Faililaiend ".sav"
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true' df <- read_sav(PATH_spss) head(df)
Väljund
## # 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
Andmete importimise parimad tavad
Kui tahame andmeid R-i importida, on kasulik rakendada järgmine kontrollnimekiri. See hõlbustab andmete korrektset importimist R-i:
- Tüüpiline arvutustabeli vorming on kasutada esimesi ridu päisena (tavaliselt muutujate nimena).
- Vältige andmestiku nimetamist tühjade tühikutega; see võib viia tõlgendamiseni eraldi muutujana. Teise võimalusena eelistage kasutada "_" või "-".
- Eelistatakse lühikesi nimesid
- Ärge lisage nimesse sümbolit: st: vahetuskurss_$_€ ei ole õige. Eelistage seda nimetama: vahetuskurss_dollar_euro
- Vastasel juhul kasutage puuduvate väärtuste jaoks NA; peame vormingu hiljem puhastama.
kokkuvõte
Järgmises tabelis on kokkuvõte funktsioonist, mida kasutatakse R-i erinevat tüüpi failide importimiseks. Esimeses veerus on märgitud funktsiooniga seotud teek. Viimane veerg viitab vaikeargumendile.
| Raamatukogu | Eesmärk | funktsioon | Vaikeargumendid |
|---|---|---|---|
| utils | Lugege CSV-faili | read.csv() | fail, päis =,TRUE, sep = "," |
| readxl | Loe EXCEL-faili | read_excel() | tee, vahemik = NULL, veergude_nimed = TRUE |
| haven | Loe SAS-faili | loe_sas() | tee |
| haven | Loe STATA faili | loe_stata() | tee |
| haven | Lugege SPSS-i faili | loe_sav() | tee |
Järgmine tabel näitab erinevaid võimalusi valiku importimiseks funktsiooni read_excel() abil.
| funktsioon | Eesmärk | Argumendid |
|---|---|---|
| read_excel() | Loe n rida ridu | n_max = 10 |
| Valige read ja veerud nagu Excelis | vahemik = "A1:D10" | |
| Valige indeksitega read | vahemik= lahtri_read(1:3) | |
| Valige tähtedega veerud | vahemik = cell_cols ("A:C") |







