Interpretacja ostrzeżenia „warunek ma długość> 1” z funkcji `if`
Mam tablicę:
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)
i chciałbym wdrożyć następującą funkcję:
w<-function(a){
if (a>0){
a/sum(a)
}
else 1
}
Ta funkcja chce sprawdzić, czy istnieje jakaś wartośća
większy niż 0, a jeśli tak, podziel każdy element przez sumę sumy.
W przeciwnym razie należy tylko zarejestrować 1.
Otrzymuję następujący komunikat ostrzegawczy:
Warning message:
In if (a > 0) { :
the condition has length > 1 and only the first element will be used
Jak mogę poprawić tę funkcję?