Hinweise zu R

Diese Seite enthält Informationen über (das Statistikpaket) R für Teilnehmer des Stochastik-Praktikums, WS 2010/2011.

Was ist R?
Wo gibt es R?
Dokumentation zu R
R starten und nullte Schritte
Online-Hilfe


Was ist R?

R ist ein Statistikpaket und zugleich eine Programmiersprache, die speziell für statistische Aufgaben zugeschnitten ist (und für viele statistische Standard- und nicht-ganz-so-Standard-Probleme vorgefertigte Bibliotheken besitzt). R ist eine frei verfügbare (gemäß der GNU General Public License der Free Software Foundation) Version des kommerziellen Statistikpaketes S, weshalb es auch manchmal als 'GNU S' bezeichnet wird.
R ist die gemeinsame Arbeit vieler Programmierer. Details und viele weitere Informationen finden sich auf der offiziellen R-Heimatseite unter www.r-project.org.

zum Seitenanfang

Wo gibt es R?

Am einfachsten über Rs Homepage http://www.r-project.org. Da R freie Software ist, kann es sich jeder Benutzer legal und kostenlos von CRAN, dem Comprehensive R Archive Network herunterladen, http://cran.r-project.org. Prinzipiell benötigt man also nur einen C-Compiler und genügend Geduld. Es gibt aber auch vorkompilierte Versionen für viele UNIX-Varianten (einschließlich Linux, es gibt auch fertige Packages für gängige Distributionen), für Windows (ab Windows 95) und für MacOS.

zum Seitenanfang

Dokumentation

Umfangreiche (elektronische) Dokumentation in diversen Formaten findet man auf der R-Homepage unter unter http://cran.r-project.org/manuals.html (und siehe auch FAQs, wiki).
Um einen Überblick zu gewinnen (der für die Zwecke des Praktikums völlig ausreichend ist), empfehle ich einen Blick auf
An Introduction to R, zum Anfang auch die "nullten Schritte" weiter unten in diesem Dokument. Ein installiertes R-System besitzt darüberhinaus eine umfangreiche Online-Hilfe.

Wer ein "richtiges" Buch bevorzugt, sei auf

W. N. Venables and B. D. Ripley (1999), "Modern Applied Statistics with S-Plus. Third Edition". Springer, ISBN 0-387-98825-4
verwiesen, das in der Zentralbibliothek vorhanden ist. Dies ist ein Standardwerk zu S, zu dem R im wesentlichen kompatibel ist, siehe auch seine Homepage http://www.stats.ox.ac.uk/pub/MASS3/ . Es geht im Umfang wesentlich über den Stoff des Praktikums hinaus.

R starten und nullte Schritte

Starten

Auf Unix-Geräten kann man R von einem Terminal starten aus:

$> R [ggfs. Optionen]
    
worauf es beispielsweise antwortet
R version 2.4.0 Patched (2006-11-25 r39997)
Copyright (C) 2006 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

R ist freie Software und kommt OHNE JEGLICHE GARANTIE.
Sie sind eingeladen, es unter bestimmten Bedingungen weiter zu verbreiten.
Tippen Sie 'license()' or 'licence()' für Details dazu.

R ist ein Gemeinschaftsprojekt mit vielen Beitragenden.
Tippen Sie 'contributors()' für mehr Information und 'citation()',
um zu erfahren, wie R oder R packages in Publikationen zitiert werden können.

Tippen Sie 'demo()' für einige Demos, 'help()' für on-line Hilfe, oder
'help.start()' für eine HTML Browserschnittstelle zur Hilfe.
Tippen Sie 'q()', um R zu verlassen.

> 
und auf weitere Kommandos wartet. Die Windows- und Mac-Versionen von R starten durch (für Windows: Doppel-)Klick auf entsprechende Icons, und je nach graphischer Oberfläche und Geschmack kann man sich solches natürlich auch in Unix-Umgebungen einrichten. Emacs-Benutzer sollten sich auf alle Fälle das ESS-Paket (Emacs Speaks Statistics) anschauen, das es erlaubt, R vom Emacs aus zu kontrollieren und so den gleichzeiten Umgang mit Skripten, multiplen Datensätzen und der R-Konsole sehr komfortabel macht.
Wie R bereits selbst bemerkt hat, beendet man es mittels des Befehls
> q()
    
und man kann sich dann noch überlegen, ob man den derzeitigen Zustand speichern möchte. R legt dazu dann im aktuellen Verzeichnis die versteckten Dateien .Rhistory und .RData an, weshalb es sich empfiehlt, jeweils ein eigenes Verzeichnis für jedes Projekt anzulegen, das man bearbeiten möchte. Insbesondere .RData kann bei umfangreicheren Projekten recht groß werden, wer Probleme mit seinem Sysad befürchtet, kann gelegentlich mit ls -al nachschauen und z.B. mit dem Shell-Kommando
rechner:arbeitsverzeichnis$ rm .R*
    
aufräumen.
Längere Berechnungen von R kann man mittels CTRL-C unterbrechen und erhält damit den R-Prompt zurück.

Einige einfache Kommandos

R kann rechnen, z.B.

> 1+1 
[1] 2
> sqrt(1-cos(pi)+log(exp(2)))
[1] 2
und Variablen Werte zuweisen (mehrere Ausdrücke in einer Anweisung muss man mit ; trennen)
> a <- 3
> a; a+1; a^2
[1] 3
[1] 4
[1] 9
    
R kennt verschiedene Variablentypen; ein wichtiger Typ ist der Vektor. Das Kommando c ("combine") macht aus seinen Argumenten einen Vektor:
> c(1.0,3,-17,2.8756)
[1]   1.0000   3.0000 -17.0000   2.8756
> v <- c(1.0,3,-17,2.8756); v[3]
[1] -17
    
Besorgen wir uns einen Vektor von 20 unabhängigen, Normal-verteilten Zufallszahlen mit Mittelwert 0 und Varianz 2:

> z <- rnorm(20, mean=0, sd=sqrt(2)); z
 [1] -1.27522180 -2.19764650 -0.45389448  2.53097509  2.47142030 -3.00650845
 [7] -1.39472754 -0.11109969  0.63868187 -0.03146561 -1.78808004 -0.67872637
[13] -0.10295801  0.65093853 -1.30665635  0.86648932  2.12904480 -0.44324417
[19]  0.07756036 -1.59045948
    
Das empirische Mittel dieser 20 Zahlen und die empirische Varianz sind
> mean(z); var(z)
[1] -0.2507789
[1] 2.270456
Kann diese Abweichung des emprischen Mittels vom 'wahren' Mittel Zufall sein oder sollten wir dem Zufallsgenerator von R mißtrauen? Ein T-Test ergibt
> t.test(z, mu=0.0)

         One Sample t-test 

data:  z 
t = -0.7443, df = 19, p-value = 0.4658 
alternative hypothesis: true mean is not equal to 0 
95 percent confidence interval:
 -0.9559846  0.4544267 
sample estimates:
 mean of x 
-0.2507789 
    
Der p-Wert zeigt, dass wir eine solche (oder noch größere) Abweichung des empirischen vom theoretischen Mittelwert in 47% der Realisierungen erwarten können. (Oder wenigstens können wir sicher sein, dass uns R selbst-konsistent betrügt ;-)
Auf graphischen Oberflächen kann R auch plotten:
> plot(z)
    
plot(z)
zum Seitenanfang

Online-Hilfe

Mit help(t.test) oder kürzer ?t.test verrät R mehr über den Student-T-Test und Parameter des t.test-Kommandos. In dem eingebauten textorientierten Hilfe-Betrachter navigiert man, wie man es beispielsweise von dem Unix-Kommando more gewöhnt ist: Mit Leertaste nach unten, mit b nach oben, mit q verläßt man den Betrachter. Man kann R aber auch so einstellen, dass es einen Web-Browser als Hilfe-Betrachter aufruft: options("htmlhelp"=TRUE) (wer will, kann das auch in .Rprofile in seinem Heimatverzeichnis eintragen).
Dasselbe funktioniert mit jedem anderen Befehl:

help(blabla) oder ?blabla
zeigt die Online-Hilfe zum Befehl blabla an (falls vorhanden). Mit dem Befehl
help.start()
ruft man die R-Dokumentation in einem Browser auf und kann sie online nach Stichworten durchsuchen (sofern Java und Javascript aktiviert sind). Von der Konsole aus kann man help.search("Stichwort") verwenden.
zum Seitenanfang

Oktober 2010, Matthias Birkner