So reparieren sie in r: der ersatz hat die länge null


Ein Fehler, der in R auftreten kann, ist:

 Error in x[1] = x[0]: replacement has length zero

Dieser Fehler tritt auf, wenn Sie versuchen, einen Wert in einem Vektor durch einen anderen Wert zu ersetzen, der „die Länge Null hat“, was bedeutet, dass er nicht existiert.

In diesem Tutorial wird genau erklärt, wie Sie diesen Fehler beheben können.

So reproduzieren Sie den Fehler

Angenommen, wir erstellen den folgenden Vektor mit 10 Werten in R:

 data = c(1, 4, 5, 5, 7, 9, 12, 14, 15, 17)

Nehmen wir nun an, wir versuchen, die folgende for() -Schleife zu verwenden, um jeden Wert im Vektor mit dem Wert davor zu multiplizieren:

 for (i in 1: length (data)) {
  data[i] = data[i] * data[i-1]
}

Error in data[i] <- data[i] * data[i - 1]: replacement has length zero

Wir erhalten die Fehlermeldung „ Ersetzung hat die Länge Null “, da wir in der ersten Schleife versuchen, die folgende Multiplikation durchzuführen:

  • Daten[1] * Daten[0]

Da R-Indizes bei 1 beginnen, existiert der Wert data[0] einfach nicht.

Wir können dies überprüfen, indem wir versuchen, den Wert an Position 0 im Vektor auszugeben:

 print (data[0])

numeric(0)

Das Ergebnis ist ein digitaler Vektor der Länge 0 – mit anderen Worten, er existiert nicht.

So beheben Sie den Fehler

Die Möglichkeit, diesen Fehler zu beheben, besteht darin, einfach eine for()- Schleife zu verwenden, die nicht versucht, auf einen nicht vorhandenen Wert des Vektors zuzugreifen.

In unserem Beispiel könnten wir diesen Fehler beheben, indem wir die for-Schleife an Indexposition 2 statt an Position 1 starten:

 for (i in 2: length (data)) {
  data[i] = data[i] * data[i-1]
}

#view updated vector
data

 [1] 1 4 20 100 700 6300 75600
 [8] 1058400 15876000 269892000

Beachten Sie, dass wir keine Fehlermeldung erhalten, da wir nie versucht haben, auf eine Indexposition im Vektor zuzugreifen, die nicht existiert.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in R beheben können:

Lösung: Die Bedingung hat eine Länge > 1 und nur das erste Element wird verwendet
So beheben Sie das Problem: Ersetzen hat X-Zeilen, Daten haben Y
Problembehebung: Nicht numerisches Argument des binären Operators
Lösung: dim(X) muss eine positive Länge haben
So beheben Sie: Fehler bei der Auswahl nicht verwendeter Argumente

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert