Seite 1 von 1

NA mit realen Wert ersetzten

Verfasst: Do Aug 17, 2017 1:12 pm
von janedoe
Schönen Nachmittag,

ich möchte gerne NA-Werte in einem data.frame mit -9999 ersetzten. Probiert habe ich das folgenderweise

Code: Alles auswählen

str(date)
'data.frame': 15892331obs. of 3 variables:
$tag: chr "20130102" "20130102" "20130102" "20130102" ...
$zeit: chr "0000" "0000" "0000" ...
$phi: num 31 31 31 31 31 31 31...
$lam: num 16 NA NA 19 20 21 NA ...

is.na(date$lam) <- (date$lam == -9999)

Wenn ich mir die Werte dann nochmals ausgeben lasse, hat sich allerdings nichts geändert, die NA stehen noch immer bei lam drinnen.
Benötige ich für die Ausführung eine for-Schleife?

glg JaneD

Re: NA mit realen Wert ersetzten

Verfasst: Do Aug 17, 2017 1:42 pm
von jogo
Hallo Jane,

Code: Alles auswählen

date$lam[is.na(date$lam)] <- -9999
Anmerkung:
R kann mit NAs umgehen - und das ist gut so. Es bewahrt eine/einen vor dem Rechnen mit nicht vorhandenen Daten.
Wird mit einem NA-Wert gerechnet, ist das Ergebnis normalerweise NA (außer in Fällen, in denen es nicht auf den Wert anstelle von NA ankommt, z.B. https://stackoverflow.com/questions/455 ... alues-in-r )

Gruß, Jörg

Re: NA mit realen Wert ersetzten

Verfasst: Do Aug 17, 2017 4:06 pm
von janedoe
Hallo Jörg,
Vielen Dank für deine schnelle Antwort.
Grüße, Jane

Re: NA mit realen Wert ersetzten

Verfasst: Fr Aug 18, 2017 8:44 am
von jogo
ansonsten gibt es noch:

Code: Alles auswählen

x <- c(1, NA, 3, NA, 7:9)
replace(x, is.na(x), -9999) # x <- ...
library("zoo")
na.fill(x, -9999) # x <- ...
Gruß, Jörg