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.

Readxl_Example

Arvutustabeli clippy.xls asukoha kontrollimiseks kasutage seda lihtsalt

readxl_example("geometry.xls")

Readxl_Example

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

  1. Kasutage n rea tagastamiseks argumenti n_max
  2. 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)

Excel_Sheets

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

Excel_Sheets

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.

Excel_Sheets

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

Excel_Sheets

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)

Excel_Sheets

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

  1. summa
  2. 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")

Võta see postitus kokku järgmiselt: