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.
Voit tarkistaa clippy.xls-nimisen laskentataulukon sijainnin helposti
readxl_example("geometry.xls")
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
- Käytä n_max-argumenttia palauttaaksesi n riviä
- 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)
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
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.
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
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)
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ä
- summa
- 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") |