Comment combiner deux fonctions dans R?


Rafael Jeremiah Jonathans

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

G. Grothendieck

En utilisant fun1et à fun2partir de la question, nous pouvons définir bothqui 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(...))
}

Articles connexes


Comment combiner deux listes dans R

Rohit Singh: J'ai deux listes: l1 = list(2, 3) l2 = list(4) Je veux une troisième liste: list(2, 3, 4). Comment puis-je le faire de manière simple. Bien que je puisse le faire en boucle for, mais je m'attends à une réponse unique, ou peut-être une méthode in

Comment combiner deux lignes dans R?

marcheur Je voudrais combiner / additionner deux lignes en fonction des noms de lignes pour faire une ligne dans R. Le meilleur itinéraire pourrait être de créer une nouvelle ligne et de additionner les deux lignes ensemble. Exemple df: A 1 3 4 6 B 3 2

Comment combiner deux fonctions?

Shay Fletcher Je travaille dans mon projet sur quelque chose qui obtient un tableau et trouve les nombres maximum et minimum et je l'ai fait avec deux fonctions distinctes et je veux les combiner en une seule fonction. Comment puis-je faire ça correctement? La

Comment combiner deux fonctions ensemble dans Java Android

sk123 Comment puis-je être capable de combiner ces deux fonctions en une seule et de pouvoir effectuer deux actions Invisible et invisible. Je ne veux pas simplement obtenir la déclaration if de la méthode buttonInVisible et simplement la mettre dans la comman

Comment combiner des fonctions dans un tracé dans R

Wotan Voici mon code jusqu'à présent : en gros, je veux x^2[0;10] & 6[11, infinity] random <- function(x){ if (any(x <= 10 )) { return (x**2)} else if (any(x > 10 )){ return(6) } } Malheureusement, R n'utilise que la première partie de la fo

Comment combiner deux tracés de fonctions dans R ?

VADEUR Je n'arrive pas à trouver un moyen de combiner deux ggplots ayant des plages de fonctions différentes. library(ggplot2) myfun <- function(x) { 1/(1 + exp(-x))} ggplot( NULL,aes(x)) + stat_function(data=data.frame(x=c(0, 20)),fun=myfun, geom="line")

Comment combiner deux fonctions fléchées ?

PRANAV comment combiner ci-dessous deux fonctions, que je dois utiliser dans un seul élément. S'il vous plaît aider onClick={() => setSelectedItem("List A")} onClick={(e) => e.stopPropagation()} e.g <a onClick={function1, funtion2} Plus onClick = {(e) => {

Comment combiner deux fonctions dans Racket ?

Yamin J'essaie de créer une nouvelle fonction qui fonctionne pour deux fonctions auparavant. Je suis confus au sujet des parties (cons/+) et (add-thanks/string-length), car elles ne sont pas du même type de valeur. (define (good-job lon) (cond [(empty? l