Interpretation "Bedingung hat Länge> 1" Warnung vor "wenn" -Funktion

Ich habe ein Array:

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 möchte folgende Funktion implementieren:

w<-function(a){
  if (a>0){
    a/sum(a)
  }
  else 1
}

Diese Funktion möchte prüfen, ob ein Wert in vorhanden ista größer als 0 und wenn ja, dividieren Sie jedes Element durch die Summe der Summe.

Andernfalls sollte nur 1 aufgezeichnet werden.

Ich erhalte folgende Warnmeldung:

 Warning message:
 In if (a > 0) { :
 the condition has length > 1 and only the first element will be used

Wie kann ich die Funktion korrigieren?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage