Der kleine Statistiker

Die letzten drei Tage habe ich wieder intensiv mit der Statistiksoftware „R“ gebastelt. Diesmal habe ich eine Idee für meine Arbeit umgesetzt. Ziel war es, die Ergebnisse meiner Linux-Zertifizierungen statistisch aufzubereiten.

Als Datenbasis dient eine Excel-Tabelle in der drinsteht, welche Maschine wann für welche Linux-Distribution zertifziert wurde. Und irgendwie soll das schön aufbereitet in Richtung Management kommuniziert werden.

Excel und andere Tabellenkalulationsprogramme verfügen ja über statistische Funktionen und können auch rudimentäre Graphiken irgendwohin klatschen, aber das ganze artet eigentlich immer in eine Klick-Orgie aus, wie z.B. Datenbereiche von Graphiken anpassen usw. Und solche Aufgaben wie die Auswertung von einfachen Datenbeständen sollte man doch eigentlich automatisieren, also habe ich mal in die Trickkiste gegriffen und geschaut, was ich erreichen kann.

Den Excel-Zahlenfriedhof kann man ja recht einfach nach CSV exportieren und das kanndann von R auch problemlos eingelesen werden.

 

Nun habe ich einen Dataframe der aber zuviel enthält, denn für meine Auswertung will ich nur die erledigten Zertifizierungen betrachten. Das geht mit einem Subset:

Wichtig ist hier die Funktion drop.levels aus dem Paket gdata, denn ohne sie „erinnert“ sich R an die anderen Zeilen die in der Ausgangstabelle standen und müllt einem spätere Auswertungen sonst mit „NA“-Values zu.

Nun kann man relativ simpel Dinge auswerten, z.B. mit

erzeuge ich eine Matrix die als Spalten das jeweilige Geschäftsjahr und als Zeilen die jeweilige Linux-Distribution enthält. Alles relativ einfach und überschaubar und wenn man es in eine Datei schreibt kann man es eben „automatisiert“ ausführen. Aber natürlich will man diese Auswertungen nicht nur am Bildschirm haben sondern auch schön als Dokument. Hier kommt dann das Paket Sweave ins Spiel.

Sweave ist die Verbindung von R und LaTeX. Man erstellt eine Template-Datei die sowohl die LaTeX-Kommandos enthält als auch eingebettet die Kommandos für R. Eine solche Einbettung sieht z.B. so aus:

Hier wird eine Graphik erzeugt und zudem der Zahlenfriedhof ausgegeben, auf dem die Graphik basiert. Das ganze ist sehr einfach und überschaubar, die „chunks“ mit dem R-Code werden durchnummeriert und die Graphiken landen dann in entsprechenden Dateien. Man ruft nur noch Sweave(„report.Rnw“) in R auf und R bastelt aus dieser Template-Datei dann eine „report.tex“ die man mit LaTeX verarbeiten kann. Das Resultat ist ein vollautomatsich generierter Report mit schönen Graphiken und erklärendem Text.

Das ganze hat jetzt einige Stunden Aufwand gekostet, aber dafür sieht das Ergebnis sehr gut aus und wann immer ein aktueller Report nun erzeugt werden muss ist das nur noch eine Sache von ein paar Minuten statt wie vorher jede Menge Zeit in irgendeinem Office-Programm verbringen zu müssen.

[ratings]