Tuo tiedot R:ssä: Lue CSV-, Excel-, SPSS-, Stata-, SAS-tiedostoja
⚡ Älykäs yhteenveto
Tietojen tuonti R:ssä käsittelee CSV-tiedostojen lukemista read.csv()-funktiolla, Excel-työkirjojen lukemista readxl-funktiolla ja SAS-, STATA- tai SPSS-tiedostojen lukemista Haven-funktiolla. Tämä ohje näyttää myös, miten taulukot, rivit ja solualueet valitaan tarkasti tuonnin yhteydessä.
Dataa voi olla eri muodoissa. Jokaiselle formaatille R on erityinen funktio ja argumentti. Tämä opetusohjelma selittää, kuinka tietoja tuodaan R:hen.
Lue CSV-tiedostoja
Yleisimmin käytetty tiedostomuoto on .csv, pilkulla erotetut arvot. R lataa käynnistyksen aikana taulukon kirjastoja, mukaan lukien utils-paketin. Tämä paketti tarjoaa read.csv()-funktion, joka on CSV-tiedoston avaamisen vakiotapa. Tässä on 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)
lähtö:
## [1] 12
class(df$X)
lähtö:
## [1] "factor"
R-versioissa ennen versiota 4.0.0 read.csv() muunsi jokaisen merkkisarakkeen tekijäksi, minkä vuoksi class(df$X) palauttaa yllä olevan ”tekijän”. Voit kytkeä sen pois päältä asettamalla stringsAsFactors = FALSE.
⚠️ Versiohuomautus: koska R 4.0.0 Oletusarvo on stringsAsFactors = FALSE, joten merkkisarakkeet pysyvät merkkijonoina ja ensimmäinen esimerkki palauttaa nyt arvon ”merkki” modernissa asennuksessa. Argumentin välittäminen eksplisiittisesti alla olevan mukaisesti antaa saman tuloksen kaikissa versioissa ja on turvallisin tapa.
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE) class(df$X)
lähtö:
## [1] "character"
Muuttujan X luokka on nyt merkki.
read.csv() vs. read_csv(): Kumpaa kannattaa käyttää?
read.csv() toimitetaan R-pohjaisena eikä vaadi erillistä pakettia. Readr-paketti lisää read_csv()-funktion, joka on nopeampi ja tekee vähemmän päätöksiä puolestasi.
| Kriteeri | read.csv() (apuohjelmat) | read_csv() (lukija) |
|---|---|---|
| Paketti tarvitaan | Ei eristetty | lukija |
| Nopeus suurilla tiedostoilla | hitaampi | Useita kertoja nopeampi |
| Palautukset | data.frame | tibble |
| Sarakkeiden nimet | Välilyönnit muunnettu pisteiksi | Säilytetty täsmälleen kirjoitetun mukaisesti |
| Tyypin tunnistus | Hiljainen | Raportoitu sarakemäärityksessä |
library(readr) df <- read_csv(PATH) # For very large files, data.table::fread() is faster still library(data.table) df <- fread(PATH)
Käytä read.csv()-funktiota pienille tiedostoille ja skripteille, joiden on suoritettava ilman lisäpaketteja. Käytä read_csv()-funktiota, kun tiedosto on suuri tai kun sarakenimien tarkkojen tietojen säilyttäminen on tärkeää.
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:
lähtö:
Loading required package: readxl.
Jos pakettia ei ole asennettu, voit asentaa sen conda-komennolla. 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.
Tarkistaaksesi tietyn laskentataulukon sijainnin, anna sen nimi:
readxl_example("geometry.xls")
Jos asennat R:n condan kanssa, laskentataulukot sijaitsevat osoitteessa Anaconda3/lib/R/library/readxl/extdata/filename.xls
lue_excel()
read_excel() avaa sekä .xls- että .xlsx-tiedostopäätteet ja valitsee oikean jäsentimen automaattisesti.
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)
lähtö:
## [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)
lähtö:
[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)
lähtö:
## [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
readxl loi iris_no_header-datakehyksessä viisi paikkamerkkinimeä. Vanhemmat versiot tuottivat nimet X__1 - X__5, kun taas nykyiset versiot tuottavat …1 - …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)
lähtö:
## [1] 4 2
example_1 palauttaa 4 riviä ja 2 saraketta. Väli A1:B5 kattaa viisi laskentataulukon riviä, mutta ensimmäinen rivi kuluu otsikkona, minkä vuoksi mitta on 4 x 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)
lähtö:
## [1] 4 5
example_2 on sitä vastoin 4 x 5. cell_rows(1:5) käsittelee jälleen ensimmäistä riviä otsikkona, joten palautetaan neljä datariviä kaikista viidestä sarakkeesta.
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)
Voit myös valita sarakkeita kirjaimen mukaan, aivan kuten Excelissä:
# Select columns A and B col <- read_excel(example, range = cell_cols("A:B")) dim(col)
lähtö:
## [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.
na-argumentti kertoo read_excel()-funktiolle, mitä arvoja puuttuvina käsitellään. Laske ne sum()- ja is.na()-funktioilla:
- summa
- is.na
Tässä on koodi
iris_na <-read_excel(example, na ="setosa") sum(is.na(iris_na))
lähtö:
## [1] 50
Meiltä puuttuu 50 arvoa, jotka ovat setosalajeihin kuuluvia rivejä.
Tuo tietoja muista tilasto-ohjelmistoista
Tiedostot muista tilastopaketeista tuodaan satama paketti, joka tukee SAS, STATA ja SPSS. Voimme käyttää seuraavaa funktiota avataksemme erityyppisiä tietojoukkoja tiedostopäätteen mukaan:
- SAS: read_sas()
- TILA: read_dta() (tai read_stata(), jotka ovat identtisiä)
- SPSS: read_sav() tai read_por(). Meidän on tarkistettava laajennus
Jokainen näistä funktioista tarvitsee vain yhden argumentin, polun, johon tiedosto on tallennettu, ja jokainen hyväksyy URL yhtä helposti kuin paikallinen polku.
library(haven)
haven mukana conda r-essential muuten mene linkkiä tai terminaaliin conda asenna -c conda-forge r-haven
Lue SAS-tiedostoja
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)
lähtö:
## # 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-tiedostoja
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)
lähtö:
## # 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-tiedostoja
read_sav() avaa SPSS-tiedoston, jonka tiedostopääte on .sav.
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true' df <- read_sav(PATH_spss) head(df)
lähtö:
## # 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
Alla olevan tarkistuslistan läpikäyminen ennen tuontia säästää suurimman osan jälkikäteen tehtävästä siivouksesta:
- Tyypillinen laskentataulukon muoto on käyttää ensimmäisiä rivejä otsikkona (yleensä muuttujien niminä).
- Vältä välilyöntejä tiedosto- tai sarakenimessä, koska ne voidaan lukea sarakeerottimena. Käytä niiden sijaan alaviivaa.
- Lyhyet nimet ovat suositeltavia
- Älä käytä nimessä symboleja. Kirjoita vaihtokurssi_dollar_euro vaihtokurssi_$_€ sijaan.
- Koodaa puuttuvat arvot NA-muodossa tyhjien merkkien, viivojen tai vartijanumeroiden, kuten -99, sijaan, jotka muuten pitäisi siivota jälkikäteen.
Tietojen tuominen R:ään: Funktioviite
Alla olevassa taulukossa luetellaan kunkin tiedostotyypin tuontifunktio, sitä tarjoava kirjasto ja sen oletusargumentit:
| Kirjasto | Tavoite | Toiminto | Oletusargumentit |
|---|---|---|---|
| utils | Lue CSV-tiedosto | read.csv() | tiedosto, otsikko = TOSI, syyskuu = “,” |
| readxl | Lue EXCEL-tiedosto | lue_excel() | polku, alue = NULL, sarakkeen_nimet = TOSI |
| satama | Lue SAS-tiedosto | read_sas() | polku |
| satama | Lue STATA-tiedosto | lue_dta() / lue_stata() | polku |
| satama | Lue SPSS-tiedosto | read_sav() | polku |
Toinen taulukko näyttää tapoja 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") |








