Hallo liebe R Freunde
Eine Frage: Gibt es eine Möglichkeit nur bestimmte NA‘s mit 0 zu ersetzen?
Als Beispiel: Ich will nur die NA‘s mit 0 ersetzen die vor den Werten liegen, hier die ersten drei. Alle anderen NA‘s sollen so bleiben. Das möchte ich gerne auf alle Spalten anwenden (sind über 200).
Bin um jede Hilfe sehr dankbar!
Lieber Gruss
Selina1
Spalte1:
NA
NA
NA
1
2
3
5
7
NA
NA
9
8
7
NA und 0
Re: NA und 0
Hallo Selina,
ja, geht:
Gruß, Jörg
ja, geht:
Code: Alles auswählen
x <- c(NA, NA, NA, 1, 2, 3, 5, 7, NA, NA, 9, 8, 7)
r <- rle(is.na(x))
if (r$values[1]) x[1:r$lengths[1]] <- 0
Re: NA und 0
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube
Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube
Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Re: NA und 0
Oder sowas:
Code: Alles auswählen
x <- c(NA, NA, NA, 1, 2, 3, 5, 7, NA, NA, 9, 8, 7)
x[seq(1, min(which(!is.na(x))) - 1)] <- 0
x
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Re: NA und 0
Oder funktionell um über die Spalten zu iterieren:
Code: Alles auswählen
df <- data.frame(x = c(NA, NA, NA, 1, 2, 3, 5, 7, NA, NA, 9, 8, 7))
df$y <- df$x
foo <- function(x) {
x[seq(1, min(which(!is.na(x))) - 1)] <- 0
x
}
foo(df$x)
apply(df, 2, foo)
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.