J'ai deux fonctions et je souhaite combiner les deux en une seule fonction. Par exemple, j'ai deux fonctions différentes avec les mêmes arguments multiples comme suit:
fun1 <- function(a, b){
print(a * b)}
fun2 <- function(a, b){
print(a + b)}
Que puis-je faire en utilisant les fonctions existantes pour combiner les deux en une seule afin de pouvoir avoir une fonction comme celle-ci:
fun3 <- function(a, b){
print(a * b)
print(a + b)}
Je vous remercie
En utilisant fun1
et à fun2
partir de la question, nous pouvons définir both
qui les exécute séquentiellement. Nous le testons également.
both <- function(...) {
fun1(...)
fun2(...)
}
# test
both(1, 2)
## [1] 2
## [1] 3
Ou si vous vouliez renvoyer leurs sorties:
both2 <- function(...) list(fun1(...), fun2(...))
Alternativement, nous pouvons définir une fonction de fabrique qui, étant donné deux fonctions ayant les mêmes arguments, crée une fonction qui les exécute en séquence.
Combine <- function(FUN1, FUN2) {
function(...) { FUN1(...); FUN2(...) }
}
# test
mewfun <- Combine(fun1, fun2)
newfun(1, 2)
## [1] 2
## [1] 3
ou si vous vouliez retourner leurs sorties
Combine2 <- function(FUN1, FUN2) {
function(...) list(FUN1(...), FUN2(...))
}
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots