5  Variablen

Variablen dienen der Speicherung von Werten oder komplexen Daten (streng genommen spricht man in R aber immer von “Objekten”). Variablen bestehen aus einem Namen und dem zugewiesenen Wert (bzw. Werten). Der Name einer Variable in R darf nicht mit einer Zahl beginnen, das heisst Variablennamen wie 1stTry sind nicht erlaubt. Ein Wert kann einer Variable auf zwei Weisen zugewiesen werden:

# weise Variable "x" den Wert 8 zu 
x <- 8

Die in R gängige Variante ist das Zuweise mittels “Pfeil”, den man mit < und - nachahmt.

Die Zuweisung per Gleichheitszeichen funktioniert aber ebenso.

# weise Variable "x" den Wert 8 zu 
x <- 8

# funktioniert auch mit "=" 
x = 8

Wir haben nun eine Variable x mit dem Wert 8. Beachten Sie, dass R zwischen Groß- und Kleinschreibung unterscheidet. Unsere Variable heisst x und nicht X!

In RStudio wird uns nun im Datenfenster (oberes rechtes Viertel) die Variable x mit ihrem Wert 8 angezeigt (Abbildung 5.1).

Abb. 5.1: Variablen werden oben rechts angezeigt

Den Wert einer Variable können wir ausgeben lassen, indem wir einfach ihren Namen in die R-Konsole schreiben

# gib Wert von x aus 
x
## [1] 8

Wie erwähnt unterscheidet R zwischen Groß- und Kleinschreibung, und so erhalten wir einen Fehler wenn wir eingeben:

# großes "X", kein kleines "x" 
X
## Error in eval(expr, envir, enclos): Objekt 'X' nicht gefunden


Mit Variablen kann auch gerechnet werden:

# erzeuge Variable "y" mit Wert 10 
y <- 10 
# erzeuge Variable "z" mit Wert 5 
z <- 5 
# rechne ein bisschen 
x+y+z
## [1] 23
# noch ein bisschen rechnen 
x/(y+z)
## [1] 0.5333333
# speichere Ergebnis in weitere Variable "Dummy" 
Dummy <-x+(y^z)
# Gib Wert(e) von Dummy aus 
Dummy
## [1] 100008

5.1 Wertereihen

Wir können einer Variable auch eine Wertereihe (also mehrere Werte) zuweisen - spätestens jetzt sollten wir nicht mehr von einer “Variable” sprechen, sondern von einem “Objekt”. Dies erfolgt für gewöhnlich mit der Funktion c() (für concatenate, “aneinanderreihen”), indem man die einzelnen Werte mit einem Komma getrennt der Funktion übergibt.

# weise Wertereihe 1 bis 10 mit c() zu 
a <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 
# Gib Werte von "a" aus 
a
##  [1]  1  2  3  4  5  6  7  8  9 10

Mit c() kann auch Text, also z.B. Wörter, übergeben werden.

# es müssen keine Zahlen sein 
b <- c("eins", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun", "zehn")
# Gib Werte von "b" aus 
b
##  [1] "eins"   "zwei"   "drei"   "vier"   "fünf"   "sechs"  "sieben" "acht"  
##  [9] "neun"   "zehn"

Der Text muss in Anführungszeichen gesetzt werden, da R ansonsten nicht das Wort "fünf" versteht, sondern nach einem Objekt namens fünf sucht. Denn Variablen und Objekte können ebenfalls aneinandergereiht werden.

# Variablen aneinanderreihen 
c(x, y, z)
## [1]  8 10  5

Wichtig ist, dass innerhalb der c()-Kette nur Werte des selben Typs (entweder Zahlen oder Text) angegeben werden. Mischt man Text mit Zahlen, wandelt c() die Wertereihe auf den “kleinsten gemeinsamen Nenner” um, und das ist immer “Text”.

# c() fällt auf den "kleinsten gemeinsamen Nenner" zurück 
c(x, y, z, b)
##  [1] "8"      "10"     "5"      "eins"   "zwei"   "drei"   "vier"   "fünf"  
##  [9] "sechs"  "sieben" "acht"   "neun"   "zehn"

Aus den Zahlen 8, 10 und 5 sind die Wörter "8", "10" und "5" geworden, und mit denen kann man nun keine Rechenoperationen mehr durchführen.

Das Mischen der Wertetypen ist ein weiterer häufiger Anfängerfehler.

Mit der Funktion length() kann die Länge der Wertereihe bestimmt werden

# länge von Objekt "a" 
length(a)
## [1] 10

Objekt a besteht aus 10 Werten.

# länge von Objekt "Dummy" 
length(Dummy)
## [1] 1

Objekt Dummy besteht aus 1 Wert.

5.2 Objekte löschen

Im Datenfenster von RStudio (rechtes oberes Viertel) werden alle Objekte (und somit auch Variablen) angezeigt (Abbildung 5.2).

Abb. 5.2: Objekte werden oben rechts angezeigt

Wir sehen dort unsere Objekte a, b, Dummy, x, y und z. Rechts daneben zeigt RStudio zusammenfassende Informationen zu den Objekten an. So sieht man direkt, dass der Wert von Dummy = 100008 ist, oder dass a zehn Werte enthält.

In der R-Konsole können alle vorhandenen Objekte mit der Funktion ls() angezeigt werden.

# zeige alle Objekte an 
ls()
## [1] "a"     "b"     "Dummy" "x"     "y"     "z"

Objekte lassen sich mit dem Befehl rm() löschen.

# lösche Objekt "Dummy" 
rm(Dummy)
# zeige alle Objekte an 
ls()
## [1] "a" "b" "x" "y" "z"

Um alle Objekte zu löschen, verknüpfen wir den ls()-Befehl mit rm(). So änder sich der Befehl in:

# lösche ALLE Objekte
rm(list=ls())

# zeige alle Objekte an 
ls()
## character(0)

In RStudio löschen Sie alle Objekte aus dem Arbeitsspeicher, indem Sie im Datenfenster auf den kleinen Besen klicken (Abbildung Abbildung 5.3).

Abb. 5.3: alle Variablen löschen