小编Car*_*rto的帖子

r-raster中overlay和ifelse函数之间的冲突

我正在运行一个代码,并在光栅包中使用一个ifelse函数时发现了一个奇怪的行为overlay.简而言之,如果每个栅格的前5个值都是,则该函数将报告错误NA.为什么会这样?下面是一个简短的代码,模仿我使用R 3.2.3和光栅版本2.5-2发现的问题,以及我正在考虑使用的一些临时解决方案.

谢谢

卡洛斯阿尔贝罗

library(raster)
cob1d <- raster(matrix(1,nr=6,nc=6))
cob1 <- cob1d; cob2 <- cob1d; cob3 <- cob1d
overlay(cob1, cob2, cob3, fun=function(x1, x2, x3)  ifelse(x1 > 0, x1 + x2 + x3,  x3))

# class       : RasterLayer 
# dimensions  : 6, 6, 36  (nrow, ncol, ncell)
# resolution  : 0.1666667, 0.1666667  (x, y)
# extent      : 0, 1, 0, 1  (xmin, xmax, ymin, ymax)
# coord. ref. : NA 
# data source : in memory …
Run Code Online (Sandbox Code Playgroud)

r r-raster

5
推荐指数
1
解决办法
724
查看次数

标签 统计

r ×1

r-raster ×1