【发布时间】:2016-08-30 11:15:19
【问题描述】:
我正在使用 rgdal 和 raster 包在 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)
那么ndii_noNA 的值只有 0。我尝试了 if else 语句,但它引发了一个错误
.calcTest(x[1:5], fun, na.rm, forcefun, forceapply).
有没有办法解决这个问题?
【问题讨论】:
-
你需要
{x[stuff] <- 0; x},你当前正在返回分配的值,而不是对象x -
操作后需要返回x向量。
-
你可以
x <- c(1, NA, NaN, -2, 0, 1); x[!is.finite(x) | x < 0] <- 0; x
标签: r if-statement raster r-raster rgdal