下午好,
我一直在使用 R 的 terra 包,并且一直在寻找一种访问单个单元格值的方法。
例如,我希望
raster_1[1, 2, 1]
返回一个数值,告诉我位于第一层第二列第一行的单元格有哪个值,但我得到了
mean
1 2.106639
这种行为是预期的吗?无论如何,这个平均值是多少,[行,列,层]不应该返回一个数值而不是矩阵吗?
非常感谢您的宝贵时间!
正如@margusl提到的,你的结果显示了你的预期值,但它用图层的名称命名了该值。根据 Terra help doc,语法为
x[i, j, k]
,其中 i
是行,j
是列,k
是层。我们可以确保通过可重现的示例返回预期结果。
library(terra)
#> terra 1.7.39
r <- c(
rast(matrix(1:100, nrow=10, ncol=10)),
rast(matrix(201:300, nrow=10, ncol=10)),
rast(matrix(301:400, nrow=10, ncol=10))
) |>
setNames(c("layer1", "layer2", "layer3"))
r[1, 2, 1]
#> layer1
#> 1 11
r <- setNames(r, c("mean", "a", "b"))
r[1, 2, 1]
#> mean
#> 1 11
就像在您的示例中一样,“mean”不是指函数名称,而是指图层名称。