I有一个带有三层的栅格:A,B和C。在每一层中,有几个带有NAS的单元。 我想用Na替换某些单元,为此我在每一层中都以-999的值来检索ID号。 在下面的我可重复的示例中,应替换为-999的Na单元的ID数是由“测试”变量定义的,对应于8、4和20.
但是当我这样做时:
r[c(8, 4, 20)] <- -250
,a,b和c层中的细胞8,a,b和c层中的细胞4,以及A层A,B和C中的细胞20均由-999代替-999。我只希望在A层中的单元8,B层中的细胞4和C层中的Cell 20替换为-999(请参阅下图中的红色圆圈)。
我认为应该应用两个条件:1)细胞8、4和20,以及2)具有NA的细胞。 但是,我不知道如何基于两种条件选择单元格。
## Build the raster
df <- data.frame(x = c(1, 2, 3, 4, 5, 6, 7, 8, 9),
y = c(1, 2, 3, 4, 5, 6, 7, 8, 9),
var1 = c(1, 9, 5, 9, 4, 2, 2, 7, 6),
var2 = c(3, 3, 7, 8, 9, 5, 6, 7, 3),
var3 = c(1, 1, 8, 8, 4, 4, 4, 1, 2))
r <- tidyterra::as_spatraster(df, xycols = c(1, 2), crs = "EPSG:4326")
terra::plot(r)
m1 <- matrix(1:25, nrow=5, ncol=5)
m1[2, 3] <- NA
r1 <- terra::rast(m1)
m2 <- matrix(1:25, nrow=5, ncol=5)
m2[1, 4] <- NA
r2 <- terra::rast(m2)
m3 <- matrix(1:25, nrow=5, ncol=5)
m3[4, 5] <- NA
r3 <- terra::rast(m3)
r <- c(r1, r2, r3)
names(r) <- c("A", "B", "C")
terra::plot(r)
## ID numbers of the NA cells
test <- c(8, 4, 20)
## Test
r[c(8, 4, 20)] <- -250
terra::plot(r)
is.na()