R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

R, Excel ja rivinvaihdot soluissa

Rivinvaihdot kentissä Esimerkiksi Excel-tiedostoissa voi olla rivinvaihtoja solujen sisällä. Tyypillisesti tällainen tilanne syntyy vaikkapa, kun soluun halutaan tallentaa osoitetieto, jossa nimi, katuosoite ja postinumero ovat kukin omilla riveillään. Jos tällaisen tiedoston luo Excelissä (Book1.xlsx), ja tallentaa sen csv-muodossa (Book1.csv), tulee rivinvaihtoja sisältävien solujen sisältö tiedostoon lainausmerkeissä, mikä taas mahdollistaa tiedoston lukemisen oikein esimerkiksi R:ään. Sama [...]

Posted in R-ohjelmointi | No Comments

Taulukoiden tuottaminen R:stä

Taulukoiden tuottaminen esimerkiksi Word-tiedostoon tai Excel-taulukoksi on perinteisesti ollut eräs R:n hankalimmin tehtävistä perustoimenpiteistä. Useimmiten olen vain kopioinut R:n komentoriviltä raaka-taulukon tekstinä, pilkkonut sen vaikkapa Excelissä sarakkeisiin, ja muokannut lopulliseen muotoon. Tiesin kyllä, että näppärämpiäkin keinoja on, mutten ollut jaksanut aiemmin niihin tutustua. Kokosin nyt parin viikon testikäytön jälkeen alle lyhyen koodikatkelman ja esimerkkejä eräistä [...]

Posted in Note to self, R-ohjelmointi | No Comments

read.spss {foreign} ja päivämäärät

Foreign-paketti tarjoaa näppärän tavan lukea SPSS-muotoisia tiedostoja R:ään. Hieman harmilinen piirre liittyy päivämäärien lukuun: R nimittäin esittää ne SPSS-tiedostosta luettuna sekuntimuodossa. Onneksi ongelma on helppo korjata, sillä SPSS:n numeerinen esitysmuoto on sekuntia päivästä (oikeastaan keskiyöstä) 14.10.1582 (gregoriaanisen kalenterin alkuhetki). Tällöin päivämäärät voidaan muuntaa R:ssä sopivaan muotoon esimerkiksi seuraavasti: dates<-c(13234838400) as.Date(as.POSIXlt(dates, origin="1582/10/14")) # 2002-03-07 Toinen vaihtoehto [...]

Posted in Note to self, R-ohjelmointi | No Comments

Työhakemiston asettaminen interaktiivisesti

R:n käyttöä Windows:ssa haittaa pieni, mutta aavistuksen rasittava piirre: työhakemiston vaihtaminen on kankeaa. Periaatteessa työhakemisto on helppoa vaihtaa vaikkapa valikoista Menu->Choose Dir… tai komennolla setwd(choose.dir()), mutta molemmat avaavat hakemistoselaimen, jossa pitää C-levyn juuuren kautta hakeutua työpöydälle (C:->Users->käyttäjä->Desktop). Turhia klikkauksia! Jos kansiossa on tiedostoja, on eräs helpompi tapa siirtyä oikeaan kansioon komento setwd(dirname(file.choose())). Nyt on enää [...]

Posted in Note to self, R-ohjelmointi | No Comments

Editointietäisyys

Editointietäisyys on mitta, joka kertoo, kuinka monta merkkiä merkkijonossa pitää muuttaa, jotta se muuttuu toiseksi. R:ssä on varsin salamannopea implementaatio editointietäisyyden laskemista varten: paketin stringdist funktio stringdist(). Esimerkiksi suomenkielen sanalistasta voidaan tällä etsiä hyvin nopeasti sanoja, jotka muuttuvat pienin muutoksin joksikin toiseksi tyyliin: “ERKKI, erkki, pepussas on MERKKI”. Mikä olisi esimerkiksi koiralle sopiva rimmaava toinen [...]

Posted in Note to self, R-ohjelmointi | No Comments

Oletusselaimen asettaminen R:ssä

Päivitin taannoin Google Chrome-selaimeni, ja samassa yhteydessä R:n HTML help-toiminnallisuus rikkoutui. Jos siis nykyisin kirjoitan R:n kehotteeseen help.start(), minkä pitäisi avata apusivusto selainikkunaan, mitään ei tapahdu. Tämä on kuitenkin mahdollista korjata antamalla seuraava komento työskentelyn aluksi, ja tämän jälkeen help aukeaa haluttuun selaimeen (OS: Windows 7): options(browser="C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe") Funktion argumentille browser pitää antaa polku [...]

Posted in Note to self, R-ohjelmointi | No Comments

ABO-veriryhmän alleelifrekvenssit

Hardy-Weinbergin laki Hardy-Weinbergin laki (HW) kuvaa eri genotyyppifrekvenssien ja alleelifrekvenssien suhdetta vapaasti sekoittuvassa (tasapaino)populaatiossa. Laki yksinkertaistaa eri genotyyppien frekvenssit kaavaksi 1 = (p+q)^2 = p^2+2pq+q^2, jossa p on tietyn lokuksen dominoivan alleelin frekvenssi ja q resessiivisen alleelin frekvenssi populaatiossa. Kaava lienee useimmille tuttu jo lukiosta. Esitetty kaava ei sellaisenaan kuvaa tilannetta kolmen alleelin lokuksessa, jollainen [...]

Posted in Grafiikka, R-ohjelmointi | No Comments

RStudio, shiny ja VeRotosite-palvelu

RStudio on R:lle räätälöity kehitysympäristö. Shiny puolestaan on R:n laajennuspaketti, jolla voi helposti tuottaa verkkosovelluksia. Shinyn tuottamien sovellusten siirtäminen tuotantoon edellyttäisi Linux-palvelinta, jolla pyörii Shiny server, mutta RStudio-yritys tarjoaa myös hosting-palvelua, jolloin omaa palvelinta ei tarvita. Pienten sovellusten hosting on tällä hetkellä ilmaista. Verokuitti-palvelu tuottaa Valtion talousarvion pahjalta laskelman, mihin maksamasi veovarat on käytetty. Palvelusta [...]

Posted in R-ohjelmointi | No Comments

SIR-malli markkinoinnissa

Johdanto Epidemiologinen SIR-malli pyrkii mallintamaan infektion leviämistä populaatiossa. Mallissa populaatio on jaettu kolmeen luokkaan, alttiisiin (susceptible eli S), infektoituneisiin (infected eli I) ja tervehtyneisiin (recovered eli R). Yksilöt voivat siirtyä näiden luokkien välillä tietyillä nopeuksilla (S -> I = beta eli infection rate ja I -> R = recovery rate), mutta recovered-luokan oletetaan olevan siinä [...]

Posted in R-ohjelmointi | No Comments

Microsoft Excel tutkimusaineiston hallintavälineenä

Microsoft Excel tai jokin muu vastaavanlainen taulukkolaskentaohjelma lienee eräs yleisimmistä aineistojen tallentamiseen ja manipulointiin käytetyistä tietokoneohjelmistoista. Sitä voi mainiosti käyttää vaikkapa tutkimusaineiston hallintavälineenä, mutta käytännössä voi olla hyötyä, jos toisettavan tutkimuksen (“reproducible research”) ideoita sovelletaan datan hallinnassa. Toistettavan tutkimuksen ajatuksena on, että aineiston analyysin aikana tehdyt muokkaukset ja sovelletut menetelmät tulevat dokumentoitua sellaisella tarkkuudella, että [...]

Posted in Yleistä | No Comments