La interpretación de "condición tiene longitud> 1" advertencia de la función `if`
Tengo una matriz:
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)
y me gustaría implementar la siguiente función:
w<-function(a){
if (a>0){
a/sum(a)
}
else 1
}
Esta función quisiera comprobar si hay algún valor ena
mayor que 0 y si es así, divida cada elemento por la suma del total.
De lo contrario solo debería grabar 1.
Recibo el siguiente mensaje de advertencia:
Warning message:
In if (a > 0) { :
the condition has length > 1 and only the first element will be used
¿Cómo puedo corregir la función?