- - keskeneräinen! - -

Havaintomatriisin laatiminen taulukkolaskimella

R osaa laskea yhtä ja toista havaintomatriisin muotoisista kokonaisuuksista, joissa vaakarivit edustavat havaintoyksiköitä ja pystyrivit muuttujia, joiden arvoja kustakin havaintoyksiköstä on mitattu. Vaakarivillä on siis esimerkiksi kyselytutkimuksessa yhteen henkilöön liittyviä tietoja ja hänen antamiaan vastauksia. Pystyrivit puolestaan ovat muuttujia kuten vastaajan ikä, pitääkö vastaaja tuotteesta A jne. Aivan ensimmäisellä rivillä on useinkin näiden muuttujien nimet tai niistä käytetyt lyhenteet. Tällaisen tiedon esittämiseen taulukkolaskimet kuten Excel, OpenOfficen tai LibreOfficen Calc jne. ovat oikein sopivia ja mukavia.

R osaa lukea muillakin ohjelmilla kuin R:llä itsellään tehtyjä havaintomatriiseja, ei kuitenkaan taulukkolaskinten omia muotoja, joiden loppuliitteenä on xls, ods tms, koska tällaisissa tiedostoissa tiedot ovat koodattuina varsin mutkikkaassa formaatissa. Taulukkolaskimilla voidaan kuitenkin tulostaa taulukoita myös muutamassa ns. tekstiformaatissa, joita R osaa lukea. Näissä esitysmuodoissa arvot ovat muodossa, jota voisi käsitellä ohjelmaeditoreillakin kuten Notepad ja Emacs.

Yhteistä näille muodoille on, että yksi taulukon eli havaintomatriisin rivi vastaa yhtä tekstiriviä ja arvot erotetaan toisistaan sovitulla merkillä. Merkkijonoarvot ympäröidään kaksinkertaisilla lainausmerkeillä (") silloin, kun ne sisältävät jotakin, mikä sotkisi rivin jakamisen oikein yksittäisiksi arvoiksi, esim. jos merkkijonoon sattuu sisältymään arvoja erottava merkki.

Taulukkolaskimet on useinkin kotoistettu (eli lokalisoitu) vastaamaan oman maan käytäntöjä. Olennainen tässä suhteessa on desimaalipilkku, joka on käytössä monissa Euroopan maissa, mutta englantia puhuvissa maissa desimaaliosa erotetaan yleensä pisteellä. Taulukkolaskin luultavasti tulostaa lukuarvot sen käytännön mukaan, joka ohjelmassa tai koneen käyttöjärjestelmässä on asetettu oletukseksi, siis täällä päin maailmaa useinkin oletettu muoto on esim. 3,1415 eikä 3.1415.

Sarkainmerkillä (TAB) erotetut arvot

R osaa funktiolla read.table() lukea havaintomatriiseja, joiden arvojen välissä on tyhjää tilaa, s.o. välilyöntejä (SPC) tai sarkainmerkkejä (TAB). Taulukkolaskinohjelmat osaavat tulostaa sarkainmerkin erottamia arvoja (tab separated values), joka kelpaa hyvin R:n read.table() -funktiolle. On vain otettava huomioon, että desimaalipilkut tai -pisteet tulkitaan oikein. R:n oletuksena ovat amerikkalaisen käytännön mukaiset desimaalipisteet, ja tällaisia voi lukea esim. komennolla:

 X = read.delim("esim.txt")

Jos käytetään Suomen mukaista desimaalipilkkua, on käytettävä hiukan toista lukurutiinia, jolla oletuksena on pilkku desimaaliosan erottimena, esim.:

 X = read.delim2("esim.txt")

Esimerkiksi Excel tulostaa R:n hyväksymää sarkaimilla erotettuja tiedostoja, kun tulostusmuodoksi valitsee MS-DOS txt. On parasta käyttää sitä desimaalilukujen esitysmuotoa, jota taulukkolaskin luonnostaan käyttää ja valita R:n funktio sen mukaisesti. Sarkaimilla erotettujen arvojen formaatista enemmän Wikipediassa, ks. http://en.wikipedia.org/wiki/Delimiter-separated_values

Pilkuilla erotetut arvot (CSV)

Yleinen tekstimuotoinen talletusmuoto on CSV (Comma Separated Values), jossa englanninkielisen käytännön mukaan on pilkulla erotettuja arvoja, joissa mahdolliset desimaaliosat on erotettu pisteellä, esim.:

 N,F,W,C
 5,12.5,cat,5
 3,3.9,"common cold",1

Tämän muotoista tiedostoa voi lukea R:n komennolla:

 X = read.csv("esim-data.csv")

Suomessa desimaaliosa erotetaan pilkulla, jolloin pilkku ei käy arvojen erottamiseen. Arvot erotetaan silloin yleensä puolipisteellä, jolloin yllä oleva esimerkki saa muodon:

 N,F,W,C
 5;12,5;cat;5
 3;3,9;"common cold";1

Tämän muotoista tiedostoa voi lukea R:llä, kunhan sille kerrotaan, mikä merkki toimii desimaaliosan erottimena ja mikä arvojen erottimena. Komentoon pitää lisätä siis pari parametria:

 X = read.csv2("esim-data.txt")

Tarkistuksia

R:n komennolla summary(X) voi tarkistaa, että havaintomatriisi on tullut luetuksi oikein. Siivuja havaintomatriisista voi myös tulostaa esim. seuraavalla komennolla tulostetaan ensimmäinen ja toinen rivi ja niiltä kaikkien muuttujien arvot:

 X[1:2,1:length(X)]
Erityisen hyödyllistä on varmistaa, että desimaaliluvut todella menevät oikein perille. Jos ne esimerkiksi taulukkolaskimessa tai muussa vaiheessa tulkitaan merkkijonoiksi eikä lukuarvoiksi, niden arvot näyttävät melko hyviltä, vaikka ovatkin kelvottomia tilastojen laskentaan. Tekstitiedostossa luvut on silloin laitettu lainausmerkkien sisään. Asiantila paljastuu kuitenkin välittömästi katsomalla summary -komennon tulostuksesta, että muuttujasta on annettu keksiarvo, mediaani ym. Jos luvut ovat menneet sisään merkkijonoina, niille summary antaa vain yleisimpien arvojen esiintymiskerrat.

Muuta huomattavaa

Pilkuilla erotettujen arvojen esitysmuodosta lisää Wikipediassa, ks. http://en.wikipedia.org/wiki/Comma-separated_values

Huomattakoon, että exim. Excel-ohjelmasta voisi saada tulostetuksi lukuarvoja desimaalipisteen ja arvoja erottavien pilkkujen kera, jos Windowsin yleisistä asetuksista muuttaa kaikkia ohjelmia koskevat asetukset laittaisi USA:n mukaiseen asentoon. Tätä ei voi pitää suositeltavana, kun näistä eri käytännöistä selviää vähemmälläkin ja globaalien asetusten muuttaminen koskee muitakin ohjelmia.

-- KimmoKoskenniemi - 2011-10-09

Topic revision: r5 - 2011-10-17 - KimmoKoskenniemi
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback