R-Kurs · Kapitel 9 · R als Programmiersprache
R als Programmiersprache
Nützliche eingebaute Funktionen
R
x <- c(4, 8, 15, 16, 23, 42)
sum(x); prod(x) # Summe, Produkt
sort(x); rev(x) # sortieren, umkehren
cumsum(x) # kumulierte Summe
which.max(x) # Position des Maximums Ausgabe
[1] 108
[1] 7418880
[1] 4 8 15 16 23 42
[1] 42 23 16 15 8 4
[1] 4 12 27 43 66 108
[1] 6 Eigene Funktionen
Eine Funktion bündelt wiederverwendbare Schritte. Argumente stehen in (), der
letzte Ausdruck ist der Rückgabewert:
R
geom.Mittel <- function(x){
n <- length(x)
prod(x)^(1/n) # Rückgabewert
}
geom.Mittel(c(2, 8, 4)) Ausgabe
[1] 4 Schreibe eine Funktion spannweite(x), die die Spannweite (Max − Min) eines
Vektors zurückgibt, und teste sie mit c(3, 7, 2, 9, 5).
💡 Tipp
Der letzte Ausdruck max(x) - min(x) ist automatisch der Rückgabewert.
Lösung zeigen
R
spannweite <- function(x){
max(x) - min(x)
}
spannweite(c(3, 7, 2, 9, 5)) Ausgabe
[1] 7 Verzweigungen und Schleifen
if/else verzweigt, for wiederholt. Für elementweise Bedingungen auf Vektoren
ist ifelse() praktisch (vektorisiert):
R
bewerten <- function(note){
if (note <= 4) "bestanden" else "durchgefallen"
}
bewerten(3)
# vektorisiert:
noten <- c(1, 4, 5, 2)
ifelse(noten <= 4, "ok", "nicht ok") Ausgabe
[1] "bestanden"
[1] "ok" "ok" "nicht ok" "ok" Schreibe eine Funktion ist.gerade(n), die TRUE zurückgibt, wenn n gerade
ist (Tipp: Modulo %%).
Lösung zeigen
R
ist.gerade <- function(n){
n %% 2 == 0
}
ist.gerade(10)
ist.gerade(7) Ausgabe
[1] TRUE
[1] FALSE Abruf-Quiz
Frage 1 / 2Was gibt eine R-Funktion ohne explizites return() zurück?