Ho un array:Interpretazione "condizione ha lunghezza> 1" avvertimento da `if` funzione
a <- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
e vorrei implementare la seguente funzione:
w<-function(a){
if (a>0){
a/sum(a)
}
else 1
}
Questa funzione vorrebbe controlla se c'è un valore in a
maggiore di 0 e se sì allora dividi ogni elemento per la somma del totale.
In caso contrario si deve solo registrare 1.
ricevo il seguente messaggio di avviso:
Warning message:
In if (a > 0) { :
the condition has length > 1 and only the first element will be used
Come posso correggere la funzione?
@ user1723765 cosa ti aspetti di avere? – agstudy
quindi in pratica se aa [a> 0] allora a/sum (a) dovrebbe essere fatto, non a [a> 0]/sum (a) – user1723765
il risultato sarebbe 0s e .166667 ecc per gli altri numeri ma vorrei alla fine ho ancora l'intero vettore – user1723765