se non le condizioni in R?

c’è qualcosa come “se non” le condizioni in R?

semplice Esempio (non di lavoro):

fun <- function(x)
{
if (!x > 0) {print ("not bigger than zero")}
}

fun(5)
  • Il tuo esempio funziona correttamente. Provare fun(0). Con 5, si dice “se non 5 > 0”. 5 è maggiore di 0, in modo che TRUE, ma non la rende FALSE.
InformationsquelleAutor Philipp | 2010-06-10

 

3 Replies
  1. 26

    Il problema è nel modo in cui si definisce la condizione. Dovrebbe essere

        if(!(x > 0)){ 

    invece di

        if(!x > 0){ 

    Questo perché !x converte l’input (numerico) ad una logica – che darà TRUE per tutti i valori, tranne zero. Quindi:

    > 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"
  2. 4

    Provare:

    if(!condition) { do something }
    • L’ho già provato, ma non è la soluzione 🙁 aggiunto un semplice esempio di cui sopra.
    • Il tuo esempio funziona.
    • hai ragione… peccato che su di me ^^
  3. 0

    Che ne dici di questo?

    fun<-function(x){
    ifelse(x>0,"not bigger than zero","zero or less")
    }

    fun(5)

    [1] "Bigger than zero"
    • ifelse deve essere utilizzato solo per vettori di lunghezza > 1

Lascia un commento