Ich manipuliere Raster-Daten in R mit den rgdal
und raster
Pakete. Ich will, um loszuwerden, alle unendlich, ohne Werte, negative Werte und ersetzen sie durch Null:Wie schreibe ich mehrere if-Anweisung R
NoNA <- function (x) {
x[is.infinite(x) | is.na(x) | is.nan(x) | is.null(x) | is.na(x < 0)] <- 0
}
ndii_noNA <- calc(ndii, NoNA)
Dann wird der ndii_noNA
haben nur einen Wert von 0 ich, wenn else-Anweisung versucht, aber es löst einen Fehler in
.calcTest(x[1:5], fun, na.rm, forcefun, forceapply).
Gibt es eine Möglichkeit, dies zu lösen?
Sie brauchen '{x [stuff] <- 0; x} 'Sie geben gerade die zugewiesenen Werte zurück, nicht das Objekt' x' – rawr
Sie müssen den x-Vektor nach der Manipulation zurückgeben. –
und Sie könnten 'x <- c (1, NA, NaN, -2, 0, 1); x [! is.finite (x) | x <0] <- 0; x' – rawr