R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

Skriptit

Kuvankäsittelyä R:llä

R:n tulokulma on pääsääntöisesti datan käsittely ja tilastollinen analysointi, mutta sillä voi tehdä muutakin. Hyvä esimerkki esitetään blogissa  Statistic on aiR: R:llä voi käsitellä mm. valokuvia.

Posted in R-ohjelmointi, Skriptit | No Comments »

HTML-taulukko, jota voi järjestää

R:n funktiokirjastosetti on kasvanut taas yhdellä hyödyllisellä paketilla: SortableHTMLTables. #Asennetaan install.packages("SortableHTMLTables") #Ladataan library("SortableHTMLTables") #Tehdään html-taulukko, jota voi järjestää kansioon irisHTML sortable.html.table(iris, "iris.html", "irisHTML")   #Kannattaa katsoa lisätietoa ?sortable.html.table Koodi tuottaa tällaisen taulukon.

Posted in R-ohjelmointi, Skriptit | No Comments »

Tiedostojen kopiointi

R:llä voidaan kopioida tiedostoja tiedostojärjestelmässä. Ohessa esimerkki Windows-ympäristöstä: #Luodaan lähde ja kohde kansiot sourc <- "C:\\temp\\" dest <- "C:\\temp\\new"   #Luodaan tiedosto if(is.na(file.info(dest)$isdir))        dir.create(dest, recursive = TRUE)   #Kopioidaan file.copy(dir(sourc, full.names = TRUE), dest)

Posted in R-ohjelmointi, Skriptit | No Comments »

lls() ja muistin käyttö

Edellisessä jutussa mainittuun lls()-komentoon voi lisätä myös objektien koon R:n muistissa. Tähän tarvittavin pienin muutoksin komennosta tulee: lls <- function (pos = 1, pat = ""){ dimx <- function(dd) if (is.null(dim(dd))) length(dd) else dim(dd) lll <- ls(pos = pos, pat = pat) cat(formatC("mode", 1, 15), formatC("class", 1, 18), formatC("name",1, max(nchar(lll)) + 1), " dim size […]

Posted in R-ohjelmointi, Skriptit | No Comments »

Paranneltu ls(): lls()

ls()-funktio tuottaa listan objekteista, joita R sessiossa on auki. Funktiosta löytyy myös paranneltu versio: lls <- function (pos = 1, pat = ""){ dimx <- function(dd) if (is.null(dim(dd))) length(dd) else dim(dd) lll <- ls(pos = pos, pat = pat) cat(formatC("mode", 1, 15), formatC("class", 1, 18), formatC("name",1, max(nchar(lll)) + 1), "size\n—————————————————————–\n") if (length(lll) > 0) { […]

Posted in R-ohjelmointi, Skriptit | No Comments »

SAS:n ja R:n yhteispeli: esimerkki

Tilastotieteen ammattilaiset ovat usein jakautuneet eri leireihin riippuen siitä, että mitä sovellusta he aineistojen analysointiin käyttävät. Yhdet vannovat kovasti SAS:n, toiset R:n ja kolmannet esim. SPSS:n nimeen. Muihin analysointisovelluksiin uskovaisia toki löytyy. Omasta mielestäni tilanne on silloin hyvä, kun voi valita mitä sovellusta käyttää. Saman ongelma voi ratkaista monellakin tavalla, ja mielestäni kannattaa hakea sovellus/ohjelmointikieli […]

Posted in R-ohjelmointi, Skriptit | No Comments »

Pakattujen .zip-tiedostojen purkaminen

R:llä pystyy purkamaan pakattuja datatiedostoja kätevästi mm. unz-funktiolla. Alla olevassa esimerkissä haetaan .zip-tiedosto ja puretaan se luettavaan muotoon. temp <- tempfile() #muodostetaan väliaikainen tiedosto download.file("http://www.newcl.org/data/zipfiles/a1.zip",temp) #haetaan .zip-tiedosto data <- read.table(unz(temp, "a1.dat")) #puretaan unz-funktiolla ja luetaan data.frameksi dim(data) #datan dimensiot (rivit, sarakkeet) head(data) #katsotaan dataa unlink(temp) #poistetaan temppitiedosto Ajettuna: > temp <- tempfile() #muodostaan väliaikainen tiedosto […]

Posted in R-ohjelmointi, Skriptit | No Comments »

Puuttuvien arvojen poistaminen matriisista

Usein on tarve poistaa puuttuvat (NA) arvot esim. matriisista. Oheisella funktiolla se onnistuu näin: mat <- matrix(1:20, 4, 5) is.na(mat) <- mat[1:2,2] mat   #Funktio poistaa koko rivin, jossa on yksikin NA #Inputiksi sarake, jonka perusteella poiston haluaa rm.na <- function(mat, which.column=2){ wc <- which.column mat[!is.na(mat[,wc]),]}   rm.na(mat, 1) rm.na(mat, 2)   #complete.cases toimii samantyyppisesti […]

Posted in R-ohjelmointi, Skriptit | No Comments »

Onko funktiokirjastosi ajan tasalla?

Oheisella skriptillä voi kätevästi tarkistaa, että mitkä funktiokirjastot kaipaavat päivittämistä: i <- installed.packages() a <- available.packages() ia <- merge(i, a, by="Package")[,c("Package", "Version.x", "Version.y")] ia[as.character(ia$Version.x) != as.character(ia$Version.y),] Oma tilanteeni tällä hetkellä: > i <- installed.packages() > a <- available.packages() > ia <- merge(i, a, by="Package")[,c("Package", "Version.x", "Version.y")] > ia[as.character(ia$Version.x) != as.character(ia$Version.y),] Package Version.x Version.y 6 foreign […]

Posted in R-ohjelmointi, Skriptit | No Comments »

SAS ja R: esimerkki SAS-koodin toteuttamisesta R:llä

Pidin maaliskuun lopussa turkulaisille tilastotieteilijöille ja biostatistikoille esityksen R:stä ja sen mahdollisuuksista datan käsittelyssä. Turussa on vahvaa SAS-osaamista etenkin lääketieteellisen tutkimuksen puolella; R-osaamistakin toki löytyy, mutta paino on vahvasti SAS:n puolella. Valmistelimme esityksen yhdessä turkulaisen biostatistikon Lauri Sillanmäen kanssa. Johtoajatuksena oli se, että SAS:n hyvin tuntevat tilastotieteilijät näkisivät miten SAS:lla tehdyn asian voi tehdä R:llä. […]

Posted in R-ohjelmointi, Skriptit | No Comments »