Erste Schritte in R
Kommandozeile
Die Kommunikation mit R erfolgt typischerweise über die Kommandozeile.
- Befehle werden am ''Prompt''
>
eingegeben - Fortsetzungszeilen werden mit einem
+
gekennzeichnet - ENTER sendet den Befehl an den Interpreter
- Zuweisungen erfolgen über
<-
oder=
x <- 2 + 2
x
## [1] 4
Workspace - der Arbeitsplatz
Alle Objekte (in R ist alles ein Objekt) die während eine R Sitzung erzeugt werden landen im Workspace.
ls()
zeigt Objekte im aktuellen Workspacerm(Objektname)
löschtObjektname
aus dem aktuellen Workspace- Das aktuelle Arbeitsverzeichnis erhält man durch
getwd()
und ändert man durchsetwd()
getwd()
## [1] "C:/Users/haug/Documents/GitHub/pmr"
setwd("..")
getwd()
## [1] "C:/Users/haug/Documents/GitHub"
Beenden von R erfolgt durch q()
. Dabei kann man
den Workspace samt Befehlen speichern. Die eingegebenen Befehle werden in einer Datei .Rhistory
und der Workspace in .Rdata
gespeichert.
.Rdata
Dateien können mit load()
in der nächsten Sitzung neu geladen werden. Auf die History kann mit loadhistory()
wieder zugegriffen werden.
R als Taschenrechner
Die Notation für die vier Grundrechenarten lautet in R:
+, -, *
und /
. Potenzen berechnet man mit ^
.
2 + 2
## [1] 4
3^2
## [1] 9
(1 - 2) * 4
## [1] -4
1 - 2 * 4
## [1] -7
Es existieren eine Vielzahl von mathematischen und statistischen Funktionen in R. Funktionen werden aufgerufen durch ihren Namen gefolgt von runden Klammern. Funktionsargumente können innerhalb der Klammern übergeben werden.
sqrt(2)
## [1] 1.414214
cos(pi)
## [1] -1
sin(pi)
## [1] 1.224606e-16
exp(1)
## [1] 2.718282
log(10)
## [1] 2.302585
Vielen Funktionen in R kann man mehrere Argumente übergeben, z.B.:
log(10, 10)
## [1] 1
log(10, base = 10)
## [1] 1
log
## function (x, base = exp(1)) .Primitive("log")
Man erkennt, dass die Basis base
standardmäßig den Wert $e$ besitzt. Im Standardfall wird also der natürliche Logarithmus berechent. Ferner sieht man, dass es sich um eine Primitive
Funktion handelt (dazu später mehr).
log(10, base = exp(1))
## [1] 2.302585
Verwendet man Funktionen nicht korrekt, so erhält man Fehlermeldungen bzw. Warnungen, wie z.B.:
squareroot(2)
## Error in eval(expr, envir, enclos): konnte Funktion "squareroot" nicht finden
sqrt(-2)
## Warning in sqrt(-2): NaNs wurden erzeugt
## [1] NaN
Hilfe
Informationen über die korrekte Verwendung von Funktionen findet man in der Hilfeseite zur jeweiligen Funktion. Diese wird aufgerufen mit dem Befehl help(Funktionsname)
oder ?Funktionsname
, also z.B.
?sqrt
help(log)
Sollte die vorhandene Dokumentation (die Beispiele sind meistens sehr hilfreich) nicht ausreichend sein, so
- schlägt man in einem evtl. vorhanden Buch nach
- sucht man im Netz (Google oder auf Seiten wie http://stackoverflow.com/tags/r/info). Aufgrund der großen Verbreitung von R, wird man (fast) immer fündig.
Während des Kurses MA8505 ist natürlich das Forum des Kurses eine weitere Möglichkeit Unterstützung bei R Problemen zu bekommen.
Pakete
R ist durch eine Vielzahl von Paketen (5881 auf CRAN: Stand 25.09.2014) "erweiterbar". Bei einem Paket handelt es sich um
Eine strukturierte, standardisierte Einheit. Diese besteht aus R Code, Dokumentation, Daten, externem Quellcode.
Pakete werden mit
library("Paketname")
geladen und mit detach()
entladen. Hilfe zu Paketen gibt es mit
library(help = "Paketname")
. Man findet (fast) alle statistischen Methoden implementiert in einem R Paket.
Standardmäßig werden die Pakete base, datasets, graphics, grDevices, methods, stats
und utils
beim Starten geladen. Alle weiteren Pakete müssen per Befehl geladen werden.
Neben base
enthält die R Basisdistribution noch die Pakete
compiler, datasets, graphics, grDevices, grid, methods, parallel, splines, stats, stats4, tcltk, tools, utils
(Standard-Pakete),
boot, class, cluster, codetools, foreign, KernSmooth, lattice, MASS, Matrix, mgcv, nlme, nnet, rpart, spatial
und survival
(empfohlene Pakete).
Alle weiteren Pakete müssen mit dem Befehl
install.packages("Paketname")
installiert werden (automatisches Herunterladen der aktuellsten Version von CRAN und anschließendes Installieren).
Installierte Pakete liegen in einer Bibliothek. Man kann mit mehreren Bibliotheken arbeiten. In der Regel verwendet man zwei. Der Befehl
.libPaths()
## [1] "C:/Users/haug/Documents/R/win-library/3.2"
## [2] "C:/Program Files/R/R-3.2.2/library"
zeigt die vorhandenen Bibliotheken. Standardmäßig werden neue Pakete in die erste Bibliothek von .libPaths()
installiert. Will man in eine andere Bibliothek installieren, so verwendet man
install.packages("Paketname", lib = "Pfad zur Bibliothek")
Mit update.packages()
werden neue Versionen installiert.