Y at-il quelque chose comme "sinon" conditions dans R?sinon conditions dans R?
Exemple (ne fonctionne pas) facile:
fun <- function(x)
{
if (!x > 0) {print ("not bigger than zero")}
}
fun(5)
Meilleurs voeux Philipp
Y at-il quelque chose comme "sinon" conditions dans R?sinon conditions dans R?
Exemple (ne fonctionne pas) facile:
fun <- function(x)
{
if (!x > 0) {print ("not bigger than zero")}
}
fun(5)
Meilleurs voeux Philipp
Le problème est dans la façon dont vous définissez la condition. Il devrait être
if(!(x > 0)){
au lieu de
if(!x > 0){
C'est parce que !x
convertit l'entrée (un numérique) à une logique - qui donnera TRUE
pour toutes les valeurs sauf zéro. Donc:
> fun <- function(x){
+ if (!(x > 0)) {print ("not bigger than zero")}
+ }
> fun(1)
> fun(0)
[1] "not bigger than zero"
> fun(-1)
[1] "not bigger than zero"
Comment cela?
fun<-function(x){ ifelse(x>0,"not bigger than zero","zero or less") }
fun(5)
[1] "Bigger than zero"
ifelse ne doit être utilisé que pour les vecteurs de longueur> 1 –
Votre exemple fonctionne correctement. Essayez 'fun (0)'. Avec 5, il dit "sinon 5> 0". 5 est supérieur à 0, donc c'est TRUE, mais le non le fait 'FALSE'. – Shane