Ich habe ein Array:Interpretieren "Zustand hat Länge> 1" Warnung von `if` Funktion
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)
und mag die folgende Funktion implementieren:
w<-function(a){
if (a>0){
a/sum(a)
}
else 1
}
Diese Funktion möchte Überprüfen Sie, ob ein Wert in a
größer als 0 ist und wenn ja, teilen Sie jedes Element durch die Summe der Summe.
aufnehmen sollte es sonst nur 1.
ich die folgende Warnmeldung erhalten:
Warning message:
In if (a > 0) { :
the condition has length > 1 and only the first element will be used
Wie kann ich die Funktion korrekt? vielleicht
@ user1723765 was erwarten Sie als Ergebnis? – agstudy
also grundsätzlich wenn aa [a> 0] dann a/sum (a) sollte getan werden, nicht a [0]/sum (a) – user1723765
das Ergebnis wäre 0s und .166667 usw. für die anderen Zahlen, aber ich würde habe immer noch den ganzen Vektor am Ende – user1723765