11 Kategoriset muuttujat
Esimerkiksi bensankulutusta (tai tutkimuspotilaan pituutta) jatkuvalla asteikolla kuvaava muuttuja on jatkuva muuttuja. Sen sijaan edellä kappaleessa 9 esiteltiin hypoteettinen muuttuja verenpainetauti, joka sai joko arvon 0
tai 1
; tällainen muuttuja ei olisi jatkuva vaan kategorinen muuttuja. Vielä spesifisemmin tällaisia dikotomisia (useimmiten joko arvon 0
tai 1
saavia) muuttujia kutsutaan dummy-muuttujiksi.
On mielestäni viisasta kertoa R:lle, mitkä muuttujistasi ovat kategorisia muuttujia, jotta R ei erehdy käsittelemään niitä missään analyyseissä jatkuvina muuttujina. R:ssä kategoriset muuttujat kannattaa tallentaa factor-tyyppisenä. Tämä on erittäin helppoa.
Voit katsella dataasi kirjoittamalla Consoleen seuraavan käskyn:
autoja
Pikainenkin silmäys tulosteeseen (vain 4 riviä tässä alla) paljastaa sinulle, että muuttuja vaihteisto on tässä datassa tarkoitettu kategoriseksi muuttujaksi. Muut muuttujat taas ovat selvästi jatkuvia muuttujia.
## bensankulutus_eu hevosvoima_eu massa_eu vaihteisto
## Mazda RX4 11.20000 111.5279 1188.432 1
## Mazda RX4 Wag 11.20000 111.5279 1304.100 1
## Hornet Sportabout 12.57754 177.4308 1560.384 0
## Duster 360 16.44755 248.4031 1619.352 0
11.1 as.factor-käsky
Muutetaan muuttuja vaihteisto muotoon factor eli kategoriseksi muuttujaksi ja tallennetaan tulos “itsensä päälle” eikä siis luoda uutta datasettiä vaikkapa nimellä “autoja2”. Tähän on pari helppoa tapaa.
- vaihtoehto: Base-R:llä tehtäisiin seuraavasti:
autoja$vaihteisto <- as.factor(autoja$vaihteisto)
Huomaa, että dollarimerkillä varustetulla ilmaisulla autoja$vaihteisto
ilmoitamme, että tahdomme muuttaa datasetistä autoja ainoastaan muuttujan vaihteisto muotoon factor.
- vaihtoehto on tehdä sama asia dplyria hyödyntäen:
autoja <- autoja %>% mutate(vaihteisto = as.factor(vaihteisto))
Aja jompi kumpi yllä mainituista tavoista. Jos nyt katselet dataasi uudelleen kirjoittamalla Consoleen seuraavan käskyn, mitään eroa entiseen ei kuitenkaan näe (tässä näytettynä vain 4 riviä):
autoja
## bensankulutus_eu hevosvoima_eu massa_eu vaihteisto
## Mazda RX4 11.20000 111.5279 1188.432 1
## Mazda RX4 Wag 11.20000 111.5279 1304.100 1
## Hornet Sportabout 12.57754 177.4308 1560.384 0
## Duster 360 16.44755 248.4031 1619.352 0
Onkin ongelmallista, ettet näe kyseisessä tulosteessa, että tietääkö R kunkin muuttujan kohdalla että onko kyseessä jatkuva vaiko kategorinen muuttuja.
Apuun tulee tibble, joka on paranneltu versio karvalakki-R:n “datakehyksestä” (aiemmissa esimerkeissä “automobiilit”, “automobiilit2” jne. olivat tässä karvalakkimuodossa). Sinun ei tässä vaiheessa tarvitse ymmärtää mitään datakehyksistä tai miksi tibble on parempi muoto - just take my word for it.
11.2 tibble
Muutetaan seuraavassa datasettimme “autoja” muotoon tibble. Tallennetaan uusi datasetti nimellä “autoja2”.
Teemme samalla toisen tärkeän korjauksen. Tähän mennessä datasettimme rivit on nimetty automerkkien mukaan, mutta rivien nimeäminen ylipäänsä ei ole tänä päivänä suositeltavaa. Kun siirrymme tibble-muotoon, rivinimet tuhoutuvat ja tilalle tulevat rivinumerot. Automerkit (tai analogisesti: “tutkittavien kooditunnisteet”) näkyvät seuraavan käskyn jälkeen ensimmäisessä sarakkeessa, mikä on suositellumpaa.
Se käy näin - ja huomaa, että käsky on as_tibble
eikä as.tibble
:
autoja2 <- as_tibble(autoja, rownames = "Automerkit")
Kun tämän jälkeen kirjoitat konsoliin seuraavan käskyn, voit helposti havaita, että R todella tietää, että muuttuja vaihteisto on kategorinen (eli R:n muodossa factor):
autoja2
Alla näkyy 4 riviä datasta (katso myös kuva alla):
## # A tibble: 4 x 5
## Automerkit bensankulutus_eu hevosvoima_eu massa_eu vaihteisto
## <chr> <dbl> <dbl> <dbl> <fct>
## 1 Mazda RX4 11.2 112. 1188. 1
## 2 Mazda RX4 Wag 11.2 112. 1304. 1
## 3 Hornet Sportabout 12.6 177. 1560. 0
## 4 Duster 360 16.4 248. 1619. 0
R-opas by Ville Langén is licensed under Attribution-ShareAlike 4.0 International