我最近偶然发现setValues()
形式的raster
包,但我想知道这个函数的用例是什么。与普通子集和索引相比是否有任何优势:
r <- raster(ncol=10, nrow=10)
#setValues Function
r <- setValues(r, values=1, index=10)
#Normal indexing
r[10] <- 1
两种方式都会产生相同的结果。但是文档说明:
虽然您可以访问&#39;值&#39;对象的插槽直接,你 会做你自己的危险,因为设置值时,多个 插槽需要更换;这些功能就是这样做的。
作者在危险中的意思是什么?当我使用普通子集而不是setValues函数或者在性能方面是否有任何优势时,哪些插槽保持不变?
答案 0 :(得分:1)
setValues
的基本用例是,如果要将单元格值的向量分配给(可能为空)RasterLayer
。 E.g。
library(raster)
r <- raster(ncol=10, nrow=10)
r <- setValues(r, 1:100)
更多R-idiomatic变种是
values(r) <- 1:100
索引通常用于几个单元格
r[1:5] <- NA
但您也可以使用它来设置所有单元格的值
r[] <- 1:100