(函数(classes,fdef,mtable)中的错误:无法找到函数'overlay'的继承方法

时间:2017-04-07 08:30:16

标签: r

我试图使用覆盖功能,代码如下:

usa <- map('state',boundary = FALSE, lty=2,plot=FALSE,fill=TRUE)
usa_SP <- map2SpatialPolygons(usa, IDs=usa$names, proj4string = CRS("+proj=longlat"))

comB.dat <- read.csv("agbregion.csv",header=TRUE)
names(comB.dat) <- c("Lon","Lat","harvDB")
names(AGByr)<- c("Lon","Lat","harvDB")
names(AGBdiff) <- c("Lon","Lat","harvDB")

pts <- SpatialPoints(cbind(comB.dat$Lon,comB.dat$Lat))
ptsyr <- SpatialPoints(cbind(AGByr$Lon,AGByr$Lat))
ptsdiff <- SpatialPoints(cbind(AGBdiff$Lon,AGBdiff$Lat))

o <- overlay(pts, usa_SP)

但我收到以下错误: (函数(classes,fdef,mtable)中的错误:无法为签名'&#34; SpatialPoints&#34;,&#34; SpatialPogons&#34;'

找到函数'overlay'的继承方法

我不知道发生了什么。有人可以帮我解释一下吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

请参阅?raster::overlay的帮助。注意前几行。

## S4 method for signature 'Raster,Raster'
overlay(x, y, ..., fun, filename="", recycle=TRUE, forcefun=FALSE)

## S4 method for signature 'Raster,missing'
overlay(x, y, ..., fun, filename="", unstack=TRUE, forcefun=FALSE)

这告诉您此方法仅适用于Raster个对象,例如RasterLayerRasterStack等。

考虑使用sp::over,声明为

  

点,网格和多边形的一致空间叠加:在对象x的空间位置从空间对象y中检索索引或属性