R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

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

Yksinkertaista tekstinlouhintaa

Olen tainnut useammankin kerran kirjoittaa R:n tarjoamista mahdollisuuksista harrastaa ruudunkaavintaa (screen scraping). R:ssä on myös varsin hyvät ominaisuudet esimerkiksi tekstinlouhintaa ajatellen, esimerkiksi paketit tm ja qdap. Ruudunkaavinnalla hankitun tekstuaalisen aineiston analyysissä tekstinlouhintatyökalut ovat varsin keskeisiä. Harmillisesti toiminnallisuus keskittyy etupäässä englanninkielisen tekstin käsittelyyn, ja suomenkielistä tekstiä varten soveltuvia analyysiä tukevia aineistoja, esimerkiksi sanalistoja, ei ole kovin [...]

Posted in Grafiikka, R-ohjelmointi, Skriptit | No Comments

Matka.fi – API vai ruudunkaavinta?

Matka.fi on Liikenneviraston tarjoama, yhteistyönä ylläpidetty palvelu, joka sisältää koko maan kattavia aikataulutietoja. Sinällään se on verrattavissa ehkä tunnetumpaan reittiopas.fi -palveluun, ja esimerkiksi API:n käyttäjäksi rekisteröityminen toimii samalla tavoin. Valitettavasti API ei vain toimi. Rekisteröityminen kyllä tuntuisi onnistuvan, mutta siihen homma sitten tyssääkin. Vaikka kuinka yrittäisi autentikoitua ohjeiden mukaisesti ja käyttää API:a tietojen hakemiseen, ei [...]

Posted in R-ohjelmointi | No Comments

Kannattaako sateessa juosta?

Vettä on taas tullut viime päivinä melko riittoisasti. Ravintolasta lähtiessämme pohdimme, kannattaako sateessa ennemmin kävellä vai juosta. Muistelin, että viimeisimmät populäärijutut kertoivat juoksemisen kannattavan. Mutta miten lujaa sitten pitäisi juosta? Tutkitaanpa asiaa lyhyesti. DeCarian kirjoittama juttu auttaa alkuun. Jutussa on oletettu, että ihminen on ruumiinrakenteeltaan suunnilleen Paavo Pesusienen muotoinen. Toisissa malleissa, jotka löysin, on ihmisten [...]

Posted in R-ohjelmointi, Yleistä | No Comments