Funktion mit mehreren Argumenten in R anwenden
Funktionen sind in jeder Programmiersprache unverzichtbar. Eine Funktion ist ein Codeblock, der aufgerufen werden kann, um eine bestimmte Operation in der Programmierung durchzuführen.
In R gibt es sowohl eingebaute Funktionen als auch benutzerdefinierte Funktionen. Wir können eine Funktion auch direkt auf eine Liste oder einen Vektor mit einem oder mehreren Argumenten anwenden.
In diesem Lernprogramm werden wir mit den folgenden Vektoren und der Funktion arbeiten:
f1 <- function(v1,v2){
v1+v2
}
vec1 <- c(1,5,9)
vec2 <- c(2,7,6)
Die Funktion ist relativ einfach, sie addiert einfach zwei Elemente und wir haben zwei Vektoren mit jeweils drei Elementen.
In diesem Lernprogramm werden wir mit den Funktionen sapply()
, lapply()
und der Funktion mapply()
arbeiten, bei denen wir eine Funktion auf den gesamten Vektor anwenden und ihr mehrere Parameter übergeben, und die Vektoren als Parameter an die Funktion übergeben.
In Situationen, in denen wir eine Funktion auf einen gegebenen Vektor oder eine Liste anwenden wollen, können wir lapply()
oder sapply()
verwenden.
Die Funktion lapply()
gibt eine Liste als endgültige Ausgabe zurück. Ein Beispiel:
lapply(vec1,f1,5)
[[1]]
[1] 6
[[2]]
[1] 10
[[3]]
[1] 14
typeof(lapply(vec1,f1,5))
[1] "list"
Wie Sie sehen können, übergeben wir die Funktion f1
an vec1 und übergeben ein weiteres Argument 5, da die Funktion zwei Argumente annimmt, die einfach 5 zu allen Elementen addiert.
Die Funktion sapply()
führt die gleiche Funktion aus wie die Funktion lapply()
, gilt aber als die effizientere der beiden, da sie die Ausgabe vereinfacht und das Ergebnis nicht unbedingt eine Liste ist.
Der folgende Codeschnipsel zeigt, wie es geht:
sapply(vec1,f1,5)
[1] 6 10 14
typeof(sapply(vec1,f1,5))
[1] "double"
Eine weitere interessante Funktion ist die mapply()
. Sie wendet eine Funktion auf Vektoren an, die als Argumente übergeben werden. Die Funktion wird auf die ersten Elemente der Vektoren angewandt, auf die zweiten Elemente und so weiter.
mapply(f1,vec1,vec2)
[1] 3 12 15
Beachten Sie, dass wir mit der Funktion mapply()
in der Lage sind, die Vektoren als mehrere Argumente an eine Funktion zu übergeben, da sie die Summe der Elemente an derselben Position zurückgibt.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn