Tuo tiedot R:ssä: Lue CSV-, Excel-, SPSS-, Stata-, SAS-tiedostoja

Dataa voi olla eri muodoissa. Jokaiselle formaatille R on erityinen funktio ja argumentti. Tämä opetusohjelma selittää, kuinka tietoja tuodaan R:hen.

Lue CSV

Yksi laajimmista tietovarastoista on .csv-tiedostomuodot (comma-separated values). R lataa joukon kirjastoja käynnistyksen aikana, mukaan lukien utils-paketti. Tämä paketti on kätevä avata csv-tiedostoja yhdistettynä read.csv()-funktioon. Tässä on read.csv:n syntaksi

read.csv(file, header = TRUE, sep = ",")

Perustelu:

  • tiedosto: PATH, johon tiedosto on tallennettu
  • ylätunniste: vahvista, onko tiedostossa otsikko vai ei, oletusarvoisesti otsikko on TRUE
  • syyskuu: symboli, jota käytetään muuttujan jakamiseen. Oletuksena `,`.

Luemme datatiedoston nimen mtcats. Csv-tiedosto on tallennettu verkkoon. Jos .csv-tiedostosi on tallennettu paikallisesti, voit korvata koodinpätkän sisällä olevan PATH:n. Älä unohda kääriä sitä sisään. PATH:n on oltava merkkijonoarvo.

Mac-käyttäjälle latauskansion polku on:

 "/Users/USERNAME/Downloads/FILENAME.csv"

Windows-käyttäjälle:

"C:\Users\USERNAME\Downloads\FILENAME.csv"

Huomaa, että meidän tulee aina määrittää tiedostonimen pääte.

  • . Csv
  • . Xlsx
  • . Txt
  • ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'                
df <- read.csv(PATH, header =  TRUE, sep = ',')
length(df)

ulostulo

## [1] 12
class(df$X)

ulostulo

## [1] "factor"

R, oletusarvoisesti palauttaa merkkiarvot tekijänä. Voimme poistaa tämän asetuksen käytöstä lisäämällä 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)

ulostulo

## [1] "character"

Muuttujan X luokka on nyt merkki.

Lue Excel-tiedostoja

kunnostautua tiedostot ovat erittäin suosittuja data-analyytikkojen keskuudessa. Laskentataulukoita on helppo käsitellä ja ne ovat joustavia. R on varustettu kirjastolla readxl Excel-laskentataulukon tuontia varten.

Käytä tätä koodia

require(readxl)

tarkistaaksesi, onko readxl asennettuna koneellesi. Jos asennat r:n kanssa r-conda-essential, kirjasto on jo asennettu. Sinun pitäisi nähdä komentoikkunassa:

ulostulo

Loading required package: readxl.

Jos paketti ei poistu, voit asentaa sen condan kanssa kirjasto tai käytä päätteessä conda install -c mittner r-readxl.

Käytä seuraavaa komentoa ladataksesi kirjaston Excel-tiedostojen tuomiseksi.

library(readxl)

readxl_example()

Käytämme tämän opetusohjelman aikana readxl-pakettiin sisältyviä esimerkkejä.

Käytä koodia

readxl_example()

nähdäksesi kaikki kirjastossa olevat laskentataulukot.

Readxl_Example

Voit tarkistaa clippy.xls-nimisen laskentataulukon sijainnin helposti

readxl_example("geometry.xls")

Readxl_Example

Jos asennat R:n condan kanssa, laskentataulukot sijaitsevat osoitteessa Anaconda3/lib/R/library/readxl/extdata/filename.xls

lue_excel()

Funktio read_excel() on erittäin hyödyllinen xls- ja xlsx-laajennusten avaamisessa.

Syntaksi 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

Voimme tuoda laskentataulukot readxl-kirjastosta ja laskea ensimmäisen arkin sarakkeiden lukumäärän.

# 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)

ulostulo

## [1] 5

excel_sheets()

Tiedosto datasets.xlsx koostuu 4 arkista. Voimme selvittää, mitkä taulukot ovat käytettävissä työkirjassa käyttämällä excel_sheets()-funktiota

example <- readxl_example("datasets.xlsx")

excel_sheets(example)

ulostulo

[1] "iris"     "mtcars"   "chickwts" "quakes"

Jos laskentataulukossa on useita arkkeja, on helppo valita tietty taulukko taulukkoargumenttien avulla. Voimme määrittää arkin nimen tai arkkihakemiston. Voimme tarkistaa, palauttavatko molemmat funktiot saman tulosteen identical()-funktiolla.

example <- readxl_example("datasets.xlsx")
quake <- read_excel(example, sheet = "quakes")
quake_1 <-read_excel(example, sheet = 4)
identical(quake, quake_1)

ulostulo

## [1] TRUE

Voimme hallita luettavia soluja kahdella tavalla

  1. Käytä n_max-argumenttia palauttaaksesi n riviä
  2. Käytä väliargumenttia yhdistettynä solu_rivit tai solu_sarakkeet

Esimerkiksi asetamme n_max-arvoksi 5 tuodaksemme ensimmäiset viisi riviä.

# Read the first five row: with header
iris <-read_excel(example, n_max =5, col_names =TRUE)

Excel_Sheets

Jos muutamme sarakkeen_nimet arvoksi FALSE, R luo otsikot automaattisesti.

# Read the first five row: without header
iris_no_header <-read_excel(example, n_max =5, col_names =FALSE)

iris_no_header

Tietokehykseen iris_no_header R loi viisi uutta muuttujaa nimeltä X__1, X__2, X__3, X__4 ja X__5

Excel_Sheets

Voimme myös käyttää argumenttialuetta valitaksesi rivejä ja sarakkeita laskentataulukosta. Alla olevassa koodissa käytämme excel-tyyliä valitaksemme alueen A1 - B5.

# Read rows A1 to B5
example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)
dim(example_1)

ulostulo

## [1] 4 2

Näemme, että esimerkki_1 palauttaa 4 riviä ja 2 saraketta. Tietojoukossa on otsikko, jonka vuoksi ulottuvuus on 4×2.

Excel_Sheets

Toisessa esimerkissä käytämme funktiota cell_rows(), joka ohjaa palautettavien rivien määrää. Jos haluamme tuoda rivit 1-5, voimme asettaa solun_rivit(1:5). Huomaa, että solu_rivit(1:5) palauttaa saman tulosteen kuin solu_rivit(5:1).

# Read rows 1 to 5
example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)			
dim(example_2)

ulostulo

## [1] 4 5

Esimerkki_2 on kuitenkin 4×5 matriisi. Iris-tietojoukossa on 5 saraketta, joissa on otsikko. Palautamme neljä ensimmäistä riviä kaikkien sarakkeiden otsikoineen

Excel_Sheets

Jos haluamme tuoda rivejä, jotka eivät ala ensimmäisellä rivillä, meidän on sisällytettävä sarakkeen_nimet = FALSE. Jos käytämme range = cell_rows(2:5), käy ilmi, että tietokehyksellämme ei ole enää otsikkoa.

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)

ulostulo

## [1] 150   2

Huomautus: alue = solun_sarakkeet("A:B"), palauttaa tulosteen kaikki solut, joiden arvo ei ole nolla. Tietojoukko sisältää 150 riviä, joten read_excel() palauttaa rivejä enintään 150. Tämä varmistetaan dim()-funktiolla.

read_excel() palauttaa NA, kun soluun ilmestyy symboli ilman numeerista arvoa. Voimme laskea puuttuvien arvojen määrän kahden funktion yhdistelmällä

  1. summa
  2. is.na

Tässä on koodi

iris_na <-read_excel(example, na ="setosa")
sum(is.na(iris_na))

ulostulo

## [1] 50

Meiltä puuttuu 50 arvoa, jotka ovat setosalajeihin kuuluvia rivejä.

Tuo tietoja muista tilastoohjelmistoista

Tuomme eri tiedostomuotoja Heaven-paketilla. Tämän paketin tuki SAS, STATA- ja SPSS-ohjelmistot. Voimme käyttää seuraavaa toimintoa erityyppisten tietojoukkojen avaamiseen tiedoston laajennuksen mukaan:

  • SAS: read_sas()
  • TILA: read_dta() (tai read_stata(), jotka ovat identtisiä)
  • SPSS: read_sav() tai read_por(). Meidän on tarkistettava laajennus

Näissä funktioissa tarvitaan vain yksi argumentti. Meidän on tiedettävä polku, johon tiedosto on tallennettu. Siinä kaikki, olemme valmiita avaamaan kaikki tiedostot SAS:sta, STATAsta ja SPSS:stä. Nämä kolme funktiota hyväksyvät myös URL-osoitteen.

library(haven)

haven mukana conda r-essential muuten mene linkkiä tai terminaaliin conda asenna -c conda-forge r-haven

Lue sas

Esimerkkissämme aiomme käyttää IDRE:n pääsytietojoukkoa.

PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true'
df <- read_sas(PATH_sas)
head(df)

ulostulo

## # 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

Lue STATA

STATA-datatiedostoille voit käyttää read_dta(). Käytämme täsmälleen samaa tietojoukkoa, mutta tallennamme .dta-tiedostoon.

PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true'
df <- read_dta(PATH_stata)
head(df)

ulostulo

## # 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

Lue SPSS

Käytämme read_sav()-funktiota SPSS-tiedoston avaamiseen. Tiedostotunniste ".sav"

PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true'
df <- read_sav(PATH_spss)
head(df)

ulostulo

## # 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

Tietojen tuonnin parhaat käytännöt

Kun haluamme tuoda tietoja R:hen, on hyödyllistä toteuttaa seuraava tarkistuslista. Sen avulla on helppo tuoda tiedot oikein R:hen:

  • Tyypillinen laskentataulukon muoto on käyttää ensimmäisiä rivejä otsikkona (yleensä muuttujien niminä).
  • Vältä nimeämästä tietojoukkoa tyhjillä välilyönneillä. se voi johtaa tulkintaan erillisenä muuttujana. Vaihtoehtoisesti käytä mieluummin merkkiä _ tai -.
  • Lyhyet nimet ovat suositeltavia
  • Älä sisällytä nimeen symbolia: eli: valuuttakurssi_$_€ ei ole oikein. Nimeä se mieluummin: valuuttakurssi_dollari_euro
  • Muussa tapauksessa käytä NA:ta puuttuville arvoille; meidän on puhdistettava muoto myöhemmin.

Yhteenveto

Seuraavassa taulukossa on yhteenveto funktiosta, jota käytetään erityyppisten tiedostojen tuontiin R:ssä. Sarakkeessa yksi on funktioon liittyvä kirjasto. Viimeinen sarake viittaa oletusargumenttiin.

Kirjasto Tavoite Toiminto Oletusargumentit
utils Lue CSV-tiedosto read.csv() tiedosto, otsikko =, TRUE, sep = ","
readxl Lue EXCEL-tiedosto lue_excel() polku, alue = NULL, sarakkeen_nimet = TOSI
satama Lue SAS-tiedosto read_sas() polku
satama Lue STATA-tiedosto read_stata() polku
satama Lue SPSS-täyttö read_sav() polku

Seuraava taulukko näyttää eri tavat tuoda valinta read_excel() -funktiolla.

Toiminto Tavoite argumentit
lue_excel() Lue n rivien lukumäärä n_max = 10
Valitse rivit ja sarakkeet kuten Excelissä alue = "A1:D10"
Valitse rivit indekseillä range= solu_rivit(1:3)
Valitse kirjaimilla varustetut sarakkeet alue = solu_cols("A:C")