R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

Molekyylisystematiikkaa R:llä

Molekyylisystematiikka on tieteen ala, jossa tutkitaan lajien sukulaisuussuhteita geneettisten tuntomerkkien, kuten DNA-sekvenssien avulla. Alaa on perinteisesti leimannut työkalujen sekalaisuus, millä tarkoitan sitä, että tulosten saaminen on edellyttänyt kohtuullisen määrän eri ohjelmistojen opettelua ja niiden ominaisuuksien yhdistelyä. Ohjelmistoja, jotka ovat jokseenkin yleisessä käytössä on kymmeniä, joten aiemmin toimin ihan tavanomaisesti esimerkiksi seuraavasti: 1) hain sekvenssit Genbank-tietokannasta [...]

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

Tekstitiedostojen lukeminen R:ään nopeasti: read.table, read_table ja fread

Johdanto Lienee jokseenkin tunnettu tosiseikka, että R:n tavanomainen funktio read.table() on melko hidas. Tiedostoja on mahdollista lukea paljon nopeamminkin eräiden laajennuspakettien funktioilla. Tällainen on esimerkiksi paketin data.table funktio fread(). Nyt markkinoille on tullut Hadley Wickhamin uusi paketti readr, jonka funktio read_table() on tarkoitettu nopeuttamaan datan lukemista R:ään. Testejä R:ssä Kokeillaanpa. Testinä on aineisto, jossa on [...]

Posted in R-ohjelmointi | No Comments

R and Python (and maybe Julia)

Introduction Both R and Python are commonly used by data scientists. They both support several different programming paradigms, such as procedural, functional and object oriented programming. Julia is relative newcomer that supports at least the functional programming paradigm. Judged from a few comparisions, the execution speed of Julia is by far the fastest of these [...]

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

Rprofile.site ja XKCD

Tiedettekö XKCD-sarjakuvan? Se nauttii tietyissä piireissä kulttimainetta. R-paketti RXKCD antaa mahdollisuuden hakea kyseisiä sarjakuvastrippejä verkon yli. R tarjoaa myös sisäänrakennetun mahdollisuuden ajaa komentoja käynnistysvaiheessa. R:n asennushakemiston alta sijaitsevassa etc-hakemistosta on tiedosto Rprofile.site, johon voi kirjoittaa käynnistysvaiheessa ajettavia komentoja. Esimerkiksi Windows:ssa (oletusasennus) tiedosto sijaitsee siis polussa C:\Program Files\R\R-3.1.2\etc. Kaikkia paketteja ei siinä vaiheessa ole vielä ladattu [...]

Posted in R-ohjelmointi | No Comments

Tilastokeskuksen postinumeroalueittainen avoin tieto ja rCharts

Tilastokeskus on avannut osan postinumeroalueiden tilastoaineistostaan avoimena data nimellä Paavo. Muokkasin aineiston muotoon, jossa esimerkiksi miesten lukumäärästä ja väkiluvusta on laskettu miesten suhteellinen osuus. Aineiston voi ladata tästä .RData-muodossa. Aineistossa on toista sataa muuttujaa, joiden läpikäyminen voi olla helpointa interaktiivista visualisointia käyttäen. Tällaisen mahdollisuuden tarjoaa R-paketti rCharts. Tehdäänpä aineistosta kaksi kuvaa, yksi pylväskaavio ja yksi [...]

Posted in Grafiikka, R-ohjelmointi | No Comments

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