12 Koko valmis esimerkkidata
Alla näet jokseenkin kaiken työstämämme esimerkkidatan peräkanaa esitettynä. Seuraavassa kappaleessa tulemme työstämään analyysejä tästä datasta R Markdown -dokumentissa.
Jos tipuit jossain vaiheessa kärryiltä, voit copy-pastettaa koko esimerkkidatan alta RStudioon seuraavasti: RStudiossa ylävalikosta File –> New File –> R Script, pastetus tuohon skriptiin ja talletus (Save As…) R-skriptiksi nimellä minun_datani.R.
minun_datani.R tullaan lataamaan R Markdown -dokumenttimme source- eli lähdetiedostoksi seuraavassa kappaleessa.
Huom! Jos et copy-pasteta rivejä tästä alta, tarkasta vielä ennen kuin siirryt seuraavaan kappaleeseen, ettei R-skriptissäsi minun_datani.R ole missään kohtaa View()-komentoja, sillä ne sotkevat R Markdown -dokumentin kääntymisvaihetta jatkossa. Alla olevassa tekstissä View()-komentoja ei ole, olen tämän tarkastanut.
# Copy-pasteta kaikki alla oleva ja tallenna se R-skriptiin nimeltä minun_datani.R
##################################################################
## Kappale 6.3: ##
## dplyr-paketin lataus ##
##################################################################
# Ladataan muistiin dplyr-paketti.
library(dplyr)
##################################################################
## Kappaleet 7 ja 7.1 ##
## Esimerkkidatasetti ##
## Datan muokkaus dplyr:lla ##
##################################################################
# Kopioidaan R:n esimerkkidatan "mtcars" sisältö
# uuteen datasettiin "automobiilit".
automobiilit <- mtcars
# Otetaan käsiteltäväksi datasettimme "automobiilit".
automobiilit2 <- automobiilit %>%
# Säilytetään vain autot, joissa yli 1 karburaattori:
filter(carb > 1) %>%
# Luodaan uusia suomenkielisiä muuttujia (oikeastaan
# duplikaatteja jo englanniksi olevista muuuttujista).
mutate(bensankulutus = mpg,
hevosvoima = hp,
massa = wt,
vaihteisto = am) %>%
#Pidetään luomamme muuttujat, tuhotaan kaikki muut
select(bensankulutus,
hevosvoima,
massa,
vaihteisto)
##################################################################
## Kappaleet 8 ja 8.1 ##
## Puutteellista dataa? ##
## Puutteellisen datan poisto ##
##################################################################
# 1.
#
# Luodaan auto, jolle ei määritetä massaa.
# Massa saa automaattisesti R:ssä siksi arvon NA (not available eli missing data).
# Tallennetaan koko uusi automobiilisetti datasettiin "automobiilit3":
automobiilit3 <- automobiilit2 %>%
add_row(bensankulutus = 30.7,
hevosvoima = 67,
vaihteisto = 1)
#Annetaan viimeisen rivin (eli auton) nimeksi "Lada":
row.names(automobiilit3)[nrow(automobiilit3)] <- "Лада"
# 2.
#
# Luodaan seuraava auto, joka saa DDR:n historiaa henkivän nimen "Trabant".
# Annetaan massaksi selvästi virheellinen arvo 0 kiloa.
# Tallennetaan koko automobiilisetti datasetin "automobiili3" päälle:
automobiilit3 <- automobiilit3 %>%
add_row(bensankulutus = 34.6,
hevosvoima = 23,
massa = 0,
vaihteisto = 1)
row.names(automobiilit3)[nrow(automobiilit3)] <- "Trabant"
# Näytetään datamme, kun NA'ta sisältäneet rivit on poistettu.
# Huom! Uutta datasettiä ei luoda, sillä emme käske dataa
# operaattorilla <- siirrettäväksi mihinkään uuteen datasettiin.
# Eli seuraava koodi vain ikään kuin näyttää minkälainen datasetti
# meille tulisi, jos ohjaisimme koodin eteenpäin uuteen datasettiin
# käyttämällä operaattoria <- ja antamalla uudelle datasetille jonkun
# nimen, esim. "automobiilit4":
automobiilit3 %>% na.omit
# Säilytetään vain autot, joiden muuttujat saavat "sallittuja", järjellisiä arvoja.
# Jälleen: emme tee uutta datasettiä vaan ainoastaan demonstroimme minkälainen datasetti
# tulisi, jos loisimme tässä uuden datasetin.
automobiilit3 %>%
filter(bensankulutus > 0,
hevosvoima > 0,
massa > 0,
vaihteisto %in% c(0,1))
# Poistetaan rivit joilla epäadekvaattia dataa tai NA:ta.
# Tallennetaan tällainen koko automobiilisetti
# uuteen datasettiin "automobiilit4":
automobiilit4 <- automobiilit3 %>%
filter(bensankulutus > 0,
hevosvoima > 0,
massa > 0,
vaihteisto %in% c(0,1))
##################################################################
## Kappale 10 ##
## Muunnosmuuttujat ##
##################################################################
# Ajetaan putkittamalla eli %>%-merkkikomboa käyttämällä kaikki
# seuraavat 4 kohtaa kerralla:
# 1. Lähdetään uudelleen alusta liikkeelle, otetaan mtcars käsiteltäväksi.
autoja <- mtcars %>%
# 2. Valitaan vain yli 1 karburaattoria sisältävät autot.
filter(carb > 1) %>%
# 3. Muutetaan mutate-käskyllä jenkkiyksiköt eurooppalaisiksi
# ja annetaan muuttujille samalla suomalaisia nimiä.
mutate(bensankulutus_eu = 235.2 / mpg,
hevosvoima_eu = hp / 0.9863,
massa_eu = wt * 453.6,
vaihteisto = am) %>%
# 4. Select-käskyllä säilytetään vain luomamme uudet muuttujat ja
# samalla tulee tuhotuksi kaikki muut muuttujat.
select(bensankulutus_eu,
hevosvoima_eu,
massa_eu,
vaihteisto)
#################################################################
## Kappale 11.1 ##
## as.factor-käsky ##
#################################################################
# Muutetaan muuttuja "autoja$vaihteisto" eli datasetin "autoja" muuttuja
# "vaihteisto" muotoon factor.
# Tallennetaan se itsensä päälle.
autoja$vaihteisto <- as.factor(autoja$vaihteisto)
# Täysin sama asia olisi voitu tehdä dplyr-tyyppisellä käskyllä:
#autoja <- autoja %>% mutate(vaihteisto = as.factor(vaihteisto))
##################################################################
## Kappale 11.2 ##
## tibble ##
##################################################################
# Muutetaan datasettimme muotoon tibble.
# Rivinimet tuhoutuvat, mutta ne voidaan tästä
# eteenpäin nähdä ensimmäisessä sarakkeessa.
autoja2 <- as_tibble(autoja, rownames = "Automerkit")
R-opas by Ville Langén is licensed under Attribution-ShareAlike 4.0 International