R语言反距离加权(IDW)空间插值运行报错问题求解
报错解读与修复方案
报错含义
该报错是gstat包的方法分派逻辑触发的:调用idw()函数时,传入的参数类型组合没有匹配到对应的可用方法,具体是函数检测到第一个必填参数处于missing(缺失)状态,第二个传入的参数类型为SpatialPointsDataFrame,没有对应适配的方法可以调用。
产生原因
你的代码存在参数名拼写错误:idw()的第一个必填参数名称为formula,你在调用时错误拼写为formual(缺少了字母l)。R的参数匹配规则会将拼写错误的参数识别为无效的自定义参数,函数无法接收到必填的formula参数,就会判定首参数缺失,最终触发方法匹配失败的报错。
修复方法
修正参数名即可正常运行:
library(gstat) library(sp) set.seed(1) x <- sample(30000, 1000) + 400000 y <- sample(30000, 1000) + 410000 z <- runif(1000) source.spdf <- data.frame(x, y, z) coordinates(source.spdf) <- ~x+y x <- sample(30000, 100) + 400000 y <- sample(30000, 100) + 410000 destination.spdf <- data.frame(x, y) coordinates(destination.spdf)<- ~x+y # 仅需将错误的formual修改为正确的formula idw.fit<-idw(formula=z~1, locations=source.spdf, newdata=destination.spdf, idp=2.0)
内容的提问来源于stack exchange,提问作者Stephen Clark
相关产品推荐
相关产品推荐

