Lösung: die anzahl der zu ersetzenden elemente ist kein vielfaches der ersetzungslänge
Ein Fehler, der in R auftreten kann, ist:
Warning message: number of items to replace is not a multiple of replacement length
Dieser Fehler tritt auf, wenn Sie versuchen, eine bestimmte Anzahl von Elementen in einer Vektor- oder Datenrahmenspalte (angenommen 3 Elemente) durch eine andere Anzahl von Elementen (angenommen 6 Elemente) zu ersetzen.
In diesem Tutorial wird genau erklärt, wie Sie diesen Fehler beheben können.
So reproduzieren Sie den Fehler
Angenommen, wir haben den folgenden Datenrahmen in R mit einigen fehlenden Werten in der ersten Spalte:
#create data frame df <- data. frame (a=c(3, NA, 7, NA, NA, 14), b=c(4, 4, 5, 12, 13, 18)) #view data frame df ab 1 3 4 2 NA 4 3 7 5 4 NA 12 5 NA 13 6 14 18
Nehmen wir nun an, wir versuchen, die fehlenden Werte in der ersten Spalte durch die Werte in der zweiten Spalte zu ersetzen:
#attempt to replace missing values in first column with values in second column df$a[is. na (df$a)] <- df$b Warning message: In df$a[is.na(df$a)] <- df$b: number of items to replace is not a multiple of replacement length
Wir erhalten eine Fehlermeldung, weil wir versucht haben, 3 fehlende Werte in der ersten Spalte durch die 6 Werte in der zweiten Spalte zu ersetzen.
So beheben Sie den Fehler
Der einfachste Weg, diesen Fehler zu beheben, besteht darin, einfach eine ifelse() -Anweisung zu verwenden:
#replace missing values in column 'a' with corresponding values in column 'b'
df$a <- ifelse(is. na (df$a), df$b, df$a)
#view updated data frame
df
ab
1 3 4
2 4 4
3 7 5
4 12 12
5 13 13
6 14 18
Diese ifelse() -Anweisung prüft, ob der Wert der Spalte „a“ leer ist. Wenn ja, wird er durch den entsprechenden Wert in Spalte „b“ ersetzt, andernfalls bleibt er unverändert.
Eine andere Möglichkeit, diesen Fehler zu beheben, besteht darin, einfach alle fehlenden Werte durch eine bestimmte Zahl zu ersetzen:
#replace all missing values in column 'a' with zero
df$a[is. na (df$a)] <- 0
#view updated data frame
df
ab
1 3 4
2 0 4
3 7 5
4 0 12
5 0 13
6 14 18
Bei dieser Methode wird jeder fehlende Wert in Spalte „a“ durch eine Null ersetzt.
Zusätzliche Ressourcen
So beheben Sie in R: NAs, die durch Zwang eingeführt wurden
So reparieren Sie in R: Index außerhalb der Grenzen
So beheben Sie das Problem in R: Die Länge eines längeren Objekts ist kein Vielfaches der Länge eines kürzeren Objekts