von Karl-Kuno Kunze
Sie haben sicher schon gehört, dass R eine funktionale Sprache ist. In diesem Artikel erinnere ich Sie anhand von zwei Beispielen, wie weit das Konzept reicht.
Beispiel 1
Eine Funktion schreibt man so:
1 2 3 4 5 6 |
coolFun <- function(x) { cat(x, "and ") cat(x**2) } coolFun(2) |
1 |
## 2 and 4 |
Mehr als eine Anweisung werden in geschweifte Klammern gesetzt.
Auf der anderen Seite sind geschweifte Klammern jedoch selbst eine Funktion. Daher klappt das hier auch:
1 2 3 |
coolFun <- function(x) '{'(cat(x, "and "), cat(x**2) ) coolFun(2) |
1 |
## 2 and 4 |
Beispiel 2
So wendet man den Auswahloperator auf Vektoren und ähnliche Strukturen an:
1 2 3 |
myVec <- c(1:3) myVec[2] |
1 |
## [1] 2 |
Aber wie wär’s damit:
1 2 |
'['(myVec,2) |
1 |
## [1] 2 |
Auf diese Weise kann man den Auswahloperator in Apply-Anweisungen verwenden, zum Beispiel für rollierende Durchschnittswerte
1 2 3 4 5 |
mySeries <- c(1:9) winLength <- 3 sapply(c(1:7), function(n) mean('['(mySeries, c(n, n + winLength - 1 )))) |
1 |
## [1] 2 3 4 5 6 7 8 |
Die anonyme Funktion berechnet den Durchschnittswert einer Teilmenge von mySeries beginnend bei n und mit einer Fenstergröße von winLength. Das einzige Argument ist n. Diese Funktion wird dann auf die Reihe angewendet, die bei 1 startet und bei 7 endet.
________________________________________________________________________________________________
Sie sind an weiteren Tipps über die Programmiersprache R interessiert? Tragen Sie sich in unseren Newsletter ein und bleiben Sie auf dem Laufenden.
Interesse an einem Seminar beim Autor Karl-Kuno Kunze? Hier gelangen Sie zu unseren Trainings in Potsdam. Optional auch in Ihrem Unternehmen vor Ort. Sprechen Sie uns an!