在对矩阵或DF进行子集化时,可以引用行列,例如df1[1:5, 3:10]
或df3[2:4, ]
。
有没有办法用光栅做到这一点?也就是说,我可以仅剪切行500:700,例如从光栅对象中剪切吗?
我尝试过使用rasterFromCells()
,但它没有给我我想要的结果(看起来应该有一个更简单的解决方案,给出R的其他光滑的子集方法)。
示例:
r <- raster(ncols = 50, nrow = 50)
r[] <- 1:ncell(r)
# I would like to subset the bottom 50 rows of cells, but keep it as a raster.
# However, this returns a numeric object.
rSub <- r[30:50, 1:50]
谢谢!
答案 0 :(得分:2)
我不明白这个问题。
然而,这是你在找什么?
subR <- crop(r, extent(r, 30, 50, 1, 50))
plot(subR)
crop()
包的函数raster
可以解决问题,因为您可以使用行和列对栅格对象进行子集化。
答案 1 :(得分:1)
我更喜欢使用Seymour所示的作物。还有另一种方法,使用drop=FALSE
library(raster)
r <- raster(ncols = 10, nrow = 10)
r[] <- 1:ncell(r)
rSub <- r[3:5, 2:3, drop=FALSE]
rSub
#class : RasterLayer
#dimensions : 3, 2, 6 (nrow, ncol, ncell)
#resolution : 36, 18 (x, y)
#extent : -144, -72, 0, 54 (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
但正如你所看到的那样,实际上会降低价值 - 所以它并不好。这是我要解决的错误。