Ich habe ein Datenrahmen und einige Spalten haben NA
-Werte.
Wie kann ich diese NA
-Werte durch Nullen ersetzen?
Ich habe ein Datenrahmen und einige Spalten haben NA
-Werte.
Wie kann ich diese NA
-Werte durch Nullen ersetzen?
Wenn Sie NAs in Faktorvariablen ersetzen möchten, könnte dies nützlich sein:
n <- length(levels(data.vector))+1
data.vector <- as.numeric(data.vector)
data.vector[is.na(data.vector)] <- n
data.vector <- as.factor(data.vector)
levels(data.vector) <- c("level1","level2",...,"leveln", "NAlevel")
Es wandelt einen Faktor-Vektor in einen numerischen Vektor um und fügt einen weiteren künstlichen numerischen Faktorlevel hinzu, der dann wieder in einen Faktor-Vektor mit einem zusätzlichen "NA-Level" Ihrer Wahl umgewandelt wird.
In neueren Versionen von dplyr
:
across() ersetzt die Familie der "scoped variants" wie summarise_at(), summarise_if() und summarise_all().
df <- data.frame(a = c(LETTERS[1:3], NA), b = c(NA, 1:3))
library(tidyverse)
df %>%
mutate(across(where(anyNA), ~ replace_na(., 0)))
a b
1 A 0
2 B 1
3 C 2
4 0 3
Dieser Code zwingt 0
, in der ersten Spalte zu einem Zeichen zu werden. Um NA
basierend auf dem Spaltentyp zu ersetzen, können Sie eine purrr-ähnliche Formel in where
verwenden:
df %>%
mutate(across(where(~ anyNA(.) & is.character(.)), ~ replace_na(., "0")))
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
16 Stimmen
Kleine Änderung von stackoverflow.com/questions/7279089/… (die ich durch die Suche nach "[r] Ersatz von NA durch Null" gefunden habe) ...
0 Stimmen
@psychonomics Was ist der Unterschied zwischen Ihrem Kommentar und der besten Antwort?
1 Stimmen
@svp - Vielleicht nichts? Ich kann meinen Kommentar nicht sehen. Ist es möglich, dass ich ihn gelöscht habe und du ihn immer noch sehen kannst?