R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

Pieni päivitys tekstinlouhintafunktioihin – OCR

Olen aiemmin kirjoitellut useasti tekstinlouhinnasta, ja näissä kirjoituksissa esitellyt funktiot löytyvät GitHub repositorysta. Funktiokokonaisuuteen on nyt lisätty Optical Character Recognition (OCR) toiminnallisuus, jota on periaatteellisesti aiemmin esitylty toisessa postauksessa. OCR voidaan tehdä R:llä yksinkertaisesti seuraavasti. Ladataan ensin tarvittavat funktiot, ja tarvittaessa asennetaan puuttuvat paketit: source("https://raw.githubusercontent.com/jtuimala/TextMining/master/tm-functions.R") load(url("https://github.com/jtuimala/TextMining/raw/master/fintm-data.RData"))   installAndInitialize() initiateTesseract()source("https://raw.githubusercontent.com/jtuimala/TextMining/master/tm-functions.R") load(url("https://github.com/jtuimala/TextMining/raw/master/fintm-data.RData")) installAndInitialize() initiateTesseract() Tämän jälkeen ympäristö […]

Posted in Aiheeton | No Comments

KHO:n vuosikirjapäätökset

Korkein hallinto-oikeus (KHO) valvoo alempien viranomaisten lainkäytön oikeellisuutta, ja se käyttää ylintä tuomiovaltaa hallintolakiin liittyvissä asioissa. KHO julkaisee julkisia päätöksiään muun muassa vuosikirjapäätöksinä. Vuosikirjapäätökset ovat nykyisin kyseltävissä REST API:n kautta. Aineisto on julkaistu CC BY 4.0 -lisenssillä, ja tarkempiin käyttöehtoihin voi tutustua Oikeusministeriön, Aalto-yliopiston ja Edita Publishing Oy:n kehittämä Semanttinen Finlex datapalvelun käyttöehdot-sivulla. Katsotaanpa millaisia […]

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

Simppeli ”tankkipeli”

R-bloggers -aggregaattorissa oli postaus parabolisen ballistisen yhtälön ratkaisemisesta R:llä. Se muistutti mieleeni nostalgiset hetket tietokonepelien Gorillas ja Scorched Earth parissa. Pakkohan se oli kokeilla, miten vaikeaa tuollaisen pelin tekeminen R:llä olisi! Pelin koodi on Githubissa, ja tarvittavat funktiot voidaan noutaa suoraan sieltä: library(RCurl) script <- getURL("https://raw.githubusercontent.com/jtuimala/Rtanks/master/Rtanks3.R", ssl.verifypeer = FALSE) eval(parse(text = script))library(RCurl) script <- getURL("https://raw.githubusercontent.com/jtuimala/Rtanks/master/Rtanks3.R", […]

Posted in Grafiikka, R-ohjelmointi | No Comments

Simppeli sääntökone

Olen jo pitkään tarvinnut useampaankin paikkaan sääntökonetta. Siis sellaista, jolla vaikkapa tutkimusprojektin yhteistyökumppani voi helposti määritellä erilaisia aineiston suodatussääntöjä. Eräs perinteiden työkalu, jolla sääntöjä määritellään on Java-pohjainen Drools. On olemassa joitakin paketteja, joilla Droolsia voi käyttää R:stä [1, 2, 3], mutta niiden kehitys ja ylläpito näyttää olleen jäissä jo muutamia vuosia. Muita vaihtoehtoja ovat esimerkiksi […]

Posted in R-ohjelmointi | No Comments

Lineaarisen mallin nopea sovittaminen

Tavanomainen lineaarinen regressio sovitetaan R:ssä komennolla lm(). Jos sovitettava malli sisältää enemmän kuin yhden selittävän muuttujan, on malli kätevintä sovittaa kaava-rajapintaa käyttäen, esimerkiksi lm(y ~ x1 + x2, data=dat), jossa y ~ x1 + x2 on siis se kaava, joka spesifioi sovitettavan mallin. Kaavassa ~ -merkin vasemmalla puolella on ennustettava vastemuuttuja ja sen oikealla puolella […]

Posted in R-ohjelmointi | No Comments

Kuvatiedoston tyypin tunnistaminen

Tämä(kin) postaus sai alkunsa pieleen menneestä visualisoinnista. Yritin alunperin tuottaa R:llä GIF-animaatioon tarvittavia kuvia, mutta onnistuin luomaan samaan kansioon joukon sekalaisia, eri tiedostomuodoissa olevia kuvatiedostoja, joissa ei tietenkään ollut edes tiedostopäätteitä. Piti siis selvittää, mitä kuvia oikein tulikaan generoitua… ImageMagick tunnistaa laajan valikoiman erilaisia kuvatyyppejä vaivatta. Koska se löytyi koneelta, kutsuin sitä suoraan R:stä kullekin […]

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

Apufunktiot uusien pakettien asentamiseen

Kirjoitin aiemmin funktiosta, jolla voi ladata kaikki paketit esimerkiksi CRANin pakettikirjastosta. Uusi githubinstall-paketti kuitenkin laajentaa latausmahdollisuuden Githubinkin puolelle. Tällaista pakettien peilausmahdollisuutta tarvitaan esimerkiksi CRAN-repositoryn perustamiseen tai paikallisen miniCRAN:n perustamiseen. Paketin githubinstall funktio githubinstall:::gh_update_package_list sisältää linkin tiedostoon, johon Githubissa sijaitsevat R-pakettien sijainnit on kerätty (https://raw.githubusercontent.com/hoxo-m/gepuro-task-views-copy/master/package_list.txt). CRAN:n ja muiden vakio-repositoryjen paketit saadaan selville available.packages() -funktiolla. Jaoin pakettienlataustoiminnallisuuden […]

Posted in R-ohjelmointi | No Comments

Kaksiarvoinen vaste ja lineaarinen regressio

Taloustieteissä mallia, jossa ennustetaan kaksiarvoista muuttujaa (0/1) lineaarisella regressiolla, kutsutaan nimellä linear probability model (LPM). LPM-mallissa todennäköisyyden kuulua luokkaan 1 ajatellaan kasvavan lineaarisesti vastemuuttujan arvojen kasvaessa. Tällöin on tietysti vaarana, että ennustettu todennäköisyys tulee suuremmaksi kuin 1, mikä on konseptuaalisesti hankalaa. Esimerkiksi biostatistiikassa tällaista mallia on myös perinteisesti pidetty hyvin huonona käytäntönä, koska monet menetelmän […]

Posted in R-ohjelmointi, Yleistä | No Comments

Shiny – palvelinpään ratkaisut

Shiny on R-paketti, jolla voi helposti tehdä esimerkiksi erilaisia käyttöliittymiä, interaktiivisia visualisointiratkaisuja ja Dashboard-esityksiä. Sovellusten ajaminen paikallisesti Shinyllä tehtyjä ratkaisuja voi ajaa paikallisesti joko RStudio IDE:n kautta tai suoraan R:stä. Paikallisten sovellusten jakaminen on helppoa, sillä käyttäjän koneella tarvitsee olla vain R ja tarvittavat paketit, sovellus voidaan sitten jakaa esimerkiksi organisaation sisäisestä sovellusvarastosta (repository) tai […]

Posted in R-ohjelmointi | No Comments

OCR R:ssä

Olen aiemmin kirjoittanut PDF-tiedostojen käsittelystä tekstinlouhinnan yhteydessä. CRAN:sta löytyvällä pdftools-paketilla on siis mahdollista poimia tekstiä sellaisesta PDF-tiedostosta, jossa teksti on koodattu tekstimuotoon. Toisinaan koko PDF-tiedosto on kuitenkin tallennettu kuvaksi tai kuvina. Tällöin tekstin poimiminen ei ole yhtä suoraviivaista, vaan tiedoston sivut pitää ensin käyttää jonkin Optical Character Recognition (OCR) -työkalun kautta. R:n käyttäjille asiaan on […]

Posted in R-ohjelmointi | No Comments

Category