Voici un exemple de fonction simple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
essai <- function(Param) {
if (Param != 0) {Param=Param*2}
print(Param)
}
Pas de problème si j'appelle la fonction comme ceci essai(0) ou comme cela essai(1).
Lorsque je l'appelle ainsi essai(c(3,7)) la fonction fonctionne, mais renvoie un warning :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Warning message:
In if (Param != 0) { :
  the condition has length > 1 and only the first element will be used
C'est encore le cas avec essai(matrix(1:6,nrow=2)).

Ce warning semble contradictoire avec le résultat, puisqu'elle fait bien l'opération sur tous les éléments de l'objet transmis, et pas seulement sur le 1er
Est-ce que quelqu'un saurait expliquer le pourquoi de ce warning ?