R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

Shiny-appletti tiedostojen yhdistelemiseen

Toistuvasti nousee esille tarve yhdistellä tiedostoja jonkin yhdistävän kentän perusteella. Operaatiosta käytetään eri kielissä tai tuotteissa eri nimityksiä: Esimerkiksi R:ssä on merge, SQL:ssä puolestaan JOIN ja Excelissä VLOOKUP (PHAKU). Excelin VLOOKUP vastaa oikeastaan R:n match()-funktion tarjoamia mahdollisuuksia, mutta juuri tällaisia tarpeita varten kehitin pienen Shiny-applikaation.

Shiny on R:n päälle rakennettu laajennuspaketti, jolla on mahdollista toteuttaa verkkoselaimessa toimivia applikaatioita. Applikaatioita voi ajaa paikallisesti R:ssä tai RStudiossa tai ne voi laittaa johonkin pilvipalveluun mahdollisesti laajemmallekin yleisölle saataville.

Toteuttamani shiny-merger -applikaatio löytyy samalla nimellä GitHubista. Applikaation voi ajaa paikallisesti R:ssä esimerkiksi seuraavasti:

library(shiny)
runGitHub("shiny-merger", "jtuimala")

Kun applikaatioon syöttää kaksi tiedostoa, joissa molemmissa on ensimmäisenä saman niminen, yhdistelyyn käytettävän avaimen sisältämä sarake, applikaatio tuottaa näiden tiedostojen yhdistelmän. Yhdistellyn aineiston voi lopuksi tallentaa lataus-linkistä.

Githubin test-files -kansiossa on kaksi Excel-tiedostoa, joilla toimivuutta voi testata. Tuloksen pitäisi näyttää seuraavalta:

shiny-merger

Napilla ”Lataa yhdistetty tiedosto” saa sitten tallennettua tuon yhdistetyn aineiston.

Käyttäjän ei välttämättä tarvitse tietää miten applikaatio ajetaan R:ssä. GitHubissa on myös kaksi Windowsin bat-tiedostoa, jotka automaattisesti käynnistävät applikaation, kunhan R:ssä ovat kaikki tarvittavat pakettiasennukset (shiny, rio) kunnossa. Bat-tiedostojen sisältöä voi olla tarpeen muokata sen mukaan millainen käytössä oleva Windows-järjestelmä on, mutta niiden avulla käyttäjälle riittää tietää, miten selain ja R suljetaan käytön jälkeen, eikä hänen tarvitse syöttää yhtäkään R-komentoa itse.

Jos Shiny-käyttöliittymä on kuitenkin käsillä oleviin tarpeisiin epäkelpo, löytyy samaisesta GitHub-reposta myös yksinkertainen R-skripti, joka pyytää ensin valitsemaan yhdistettävät tiedostot, ja tallentaa sitten niiden yhdistelmän haluttuun tiedostoon. Skriptin suora linkki on https://github.com/jtuimala/shiny-merger/blob/master/script/merge-skripti.R .

Tags: , ,


Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Category