2.4 Objekte und Funktionen
R arbeitet fast ausschließlich mit zwei Dingen: Objekte und Funktionen. Im Folgenden Beispiel definieren wir ein Objekt (5 gemessene Werte der Lufttemperatur) mit der Funktion c()
.
# Erstelle ein Objekt Lufttemperatur
<- c(13.5, 16.7, 18.3, 21.9, 3.9)
lt # Berechne die mittlere Lufttemperatur
mean(lt)
## [1] 14.86
Ein Objekt in R kann alles sein, bspw. ein
- Datensatz (data frames im Englischen; eine Sonderform des data frame ist ein tibble aber dazu später mehr)
- statistische Zusammenfassung des Datensatzes
- statistischer Test
- Einfache Nummern
- Vektoren (wie in unserem Beispiel die 5 Messungen der Lufttemperatur)
- Buchstaben und Wörter
- Faktoren
Diese Objekte können verschiedene Attribute aufweisen, bspw. ein Längenattribut unseres lt
Vektors oder bei einem T-Test alle statistischen Parameter.
Was ist eine Funktion?
Eine Funktion greift meist auf ein oder mehrere Objekte zurück (input), führt etwas mit diesen durch, um dann etwas neues dadurch auszugeben (output). Ein Beispiel ist die Funktion um den Mittelwert von einem Vektor auszurechnen mit der Funktion mean()
.
2.4.1 Neue Objekte erstellen
Einer der wichtigsten Kommandos in R ist der Befehl ein bestimmtes Objekt zuzuweisen mit <-
.
# Erstelle ein Objekt mit dem Namen a und weisen ihm einen Satz zu
<- "Beste Norddeutschland Exkursion der Welt" a
Schaue was passiert wenn du a
in die Konsole eintippst.
a## [1] "Beste Norddeutschland Exkursion der Welt"
Was passiert wenn du aa
eintippst?
aa
Fehler: Objekt ‘aa’ nicht gefunden
Richtig, wir haben das Objekt aa
noch nicht definiert und daher kann es in unserer Arbeitsumgebung (Environment) auch nicht gefunden werden.
Objekte können auch miteinander verbunden werden:
<- 1
a <- 100
b # Was ist a + b?
+b
a## [1] 101
# Weise die Berechnung a + b dem Objekt c zu
<- a + b
c # Was passiert wenn du c in die Konsole eintippst?
c## [1] 101
Bei der Bennenung von Objekten gibt es auch Fehlerpotentzial:
# Dies sind falsch benannte Objekte
<- 23 # Hat ein Leerzeichen
Luft temperatur <- 23 # Beginnt mit einer Zahl
5lufttemperatur ! <- 23 # Nicht gültiger character "!" lufttemperatur
Darüber hinaus ist es wichtig zu wissen, dass R seeeeEeehr sensibel gegenüber Groß- und Kleinschreibung ist. Die folgenden Objekte sind alle individuell:
# Dies sind drei verschiedene Objekte
<- 1
test <- 100
TEST <- 1000 tEsT
💡 Große Buchstaben sollten bei der Benennung von Objekten nach Möglichkeit vermieden werden. Es dauert einfach länger MYDATA
oder MyData
zu tippen als mydata
ohne Umschalttaste.
Einige Dinge die man bei der Benennung von Objekten berücksichtigen sollte:
# Gute Objektnamen
<- 2.5
mittelwert <- 32
mein_alter <- 175
groesse_in_cm # Schlechte Objektnamen
<- 2.5
x1 <- 32
var2 <- 175 asdasdasd
Ich persönlich bevorzuge snake_case Wörter. Später lernen wir noch, dass sich diese Wörter durch ein Argument - den Namen Separator name_sep
- trennen lassen. Dies wird beim Umstrukturieren von Daten wichtig. Egal welches Schema man auch wählt, einheitlich vorzugehen ist das Wichtigste.
💡 Gute Objektnamen sollten kurz und prägnant sein! Lange Namen sind nicht intuitiv und Buchstaben alleine sagen auch nichts aus. Als Beispiel: Die durchschnittliche Lufttemperatur im Speicherkoog für März kann man mit airtemp_march_koog
abkürzen.
2.4.2 Beispiel: Umrechnen von °C in K
Der Mittelwert der Jahresdurchschnittstemperatur im Speicherkoog beträgt 10.14 °C. Mit Skalaren kann man einfache Rechenoperationen durchführen.
# Mittelwert der Lufttemperatur in °C
<- 10.14
mittel_at # Lasst uns die Lufttemperatur umrechnen von °C in K
# 0 °C sind 273.15 K
+ 273.15
mittel_at ## [1] 283.29
Das Jahresmittel der Lufttemperatur beträgt also 283,3 K.
mittel_at## [1] 10.14
Ups….wieso wird mittel_at
denn trotzdem in °C angezeigt ?! Denke daran:
🚨 Um ein Objekt zu ändern, muss es neu zugewiesen werden!
# Zuweisung des Jahresmittels der Lufttemperatur in K anstelle von °C
<- mittel_at + 273.15
mittel_at_k
mittel_at_k## [1] 283.29
Wenn ihr bis hierhin gekommen seid, dann habt ihr schon eine ganze Menge verinnerlicht. Nicht das wir uns schon zurücklehnen wollen, aber ein ein wenig Grund zum Feiern ist es dennoch 🎉🍻.