R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

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ä kevyimmistä toteutustavoista:

library(psych)
tab<-describeBy(iris[1:4], list(iris$Species))[[1]]
 
setwd("C:/Users/Jarno Tuimala/Desktop")
 
# Merkkigrafiikalle tehdyt taulukot
# Tulostuvat komentoriville
table(iris$Species)
prop.table(table(iris$Species))
 
library(ascii)
print(ascii(table(iris$Species)), "rest")
 
library(summarytools)
frequencies(iris$Species)
 
library(gmodels)
CrossTable(infert$education, infert$induced)
 
# Taulukko Excel-tiedostoon
# Pienille taulukoille nopeaa, aineistoille hitaampaa
library(xlsx)
write.xlsx(tab, "tab_xlsx.xlsx", sheetName="Sheet1", col.names=TRUE, row.names=TRUE, append=FALSE, showNA=TRUE)
 
# Taulukko html-taulukoksi
# Enemmän muotoilumadollisuuksia
library(htmlTable)
options(browser="C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe")
htmlTable(round(tab, 1))
 
# Kevyempi toteutustapa
library(xtable)
print.xtable(xtable(tab), type="html", file="tab_xtable.html")
 
# Taulukko PowerPoint:iin tai Word:iin
# Paketti tarjoaa myös laajemman valikoiman funktioita, joilla voi toteuttaa
# vaikkapa kokonaisen raportin. Sisältää myös erilaisten kaavioiden ja
# kuvien tallentamiseen liittyviä funktioita. Esimerkiksi R-kaavio on
# mahdollista tallentaa muokattavaksi vektorigrafiikaksi PowerPointiin.
library(ReporteRs)
mydoc = pptx( )
mydoc = addSlide( mydoc, "Vertical Title and Text" )
mydoc = addFlexTable( mydoc, FlexTable(tab) )
writeDoc( mydoc, "pp_simple_example.pptx" )
 
mydoc = docx( )
mydoc = addFlexTable( mydoc, FlexTable(tab) )
writeDoc( mydoc, "pp_simple_example.docx" )

Etenkin ReporteRs-paketti osoittautui varsin hyödylliseksi tuttavuudeksi. Suosittelen tutustumaan, jos se sopii työskentely-ympäristösi osaksi!


Vastaa

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