So beheben sie das problem in r: die bedingung hat eine länge > 1 und nur das erste element wird verwendet
Ein Fehler, der in R auftreten kann, ist:
Warning message: In if (x > 1) {: the condition has length > 1 and only the first element will be used
Dieser Fehler tritt auf, wenn Sie versuchen, eine if()- Funktion zum Überprüfen einer Bedingung zu verwenden, aber anstelle einzelner Elemente einen Vektor an die if()- Funktion übergeben.
In diesem Tutorial wird genau erklärt, wie Sie diesen Fehler beheben können.
So reproduzieren Sie den Fehler
Angenommen, wir haben den folgenden Vektor in R:
#define data
x <- c(2, 3, 1, 1, 5, 7)
Angenommen, wir versuchen, mit einer if()- Funktion zu prüfen, ob jeder Wert des Vektors x größer als 1 ist, und multiplizieren diese Werte dann mit 2:
#if value in vector x is greater than 1, multiply it by 2
if (x>1) {
x*2
}
Warning message:
In if (x > 1) {:
the condition has length > 1 and only the first element will be used
Wir erhalten eine Warnmeldung, weil wir der if()- Anweisung einen Vektor übergeben haben.
Eine if()- Anweisung kann jeweils nur ein Element eines Vektors prüfen, aber mit diesem Code haben wir versucht, jedes Element des Vektors gleichzeitig zu prüfen.
So beheben Sie den Fehler
Der einfachste Weg, diesen Fehler zu beheben, besteht darin, stattdessen eine ifelse() -Funktion zu verwenden:
#if value in vector x is greater than 1, multiply it by 2
ifelse(x>1, x*2, x)
[1] 4 6 1 1 10 14
Standardmäßig prüft eine ifelse() -Funktion jedes Element eines Vektors einzeln. Dadurch können wir den zuvor aufgetretenen Fehler vermeiden.
So erzeugt die Funktion ifelse() die von ihr erzeugten Ausgabewerte:
- Das erste Element (2) war größer als 1, also haben wir es mit 2 multipliziert, um 2*2 = 4 zu erhalten
- Das zweite Element (3) war größer als 1, also haben wir es mit 2 multipliziert, um 3*2 = 6 zu erhalten
- Das dritte Element (1) war nicht größer als 1, also haben wir es so belassen: 1
- Das vierte Element (1) war nicht größer als 1, also haben wir es so belassen: 1
Und so weiter.
Verwandte Themen: So schreiben Sie eine verschachtelte For-Schleife in R
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in R beheben können:
So beheben Sie in R: NAs, die durch Zwang eingeführt wurden
So beheben Sie das Problem in R: dim(X) muss eine positive Länge haben
So beheben Sie das Problem in R: Namen stimmen nicht mit vorherigen Namen überein
So beheben Sie das Problem in R: Die Länge eines längeren Objekts ist kein Vielfaches der Länge eines kürzeren Objekts
So korrigieren Sie in R: Kontraste können nur auf Faktoren mit 2 oder mehr Ebenen angewendet werden