循环变量IDW gstat R

5
有没有一种方法可以在R中使用gstat包的IDW插值循环遍历SpatialPointsDataFrame对象内的变量?我的意思是像这样:
```R for (var in variables){ coordinates(data)<-~x+y idw<-idw(var~1, data, newdata) } ```
for (day in list_days) {
  P.idw <- gstat::idw(day~1, P, newdata=grd, idp=2.0)
  r       <- raster(P.idw)
  plot(r)
}

编辑: 因为那个结构给我错误:

Error in predict.gstat(g, newdata = newdata, block = block, nsim = nsim,  : 
  too many spatial dimensions: 58
In addition: Warning message:
In predict.gstat(g, newdata = newdata, block = block, nsim = nsim,  :
NAs introduced by coercion

但是如果我直接写变量名,它可以正常工作:

P.idw <- gstat::idw(X2018.01.14~1, P, newdata=grd, idp=2.0)

5
尝试使用P.idw <- gstat::idw(get(day)~1, P, newdata=grd, idp=2.0)进行插值。其中,day是数据框P中表示观测值的列名;grd是一个用于插值的网格数据集;idp=2.0指定了反距离权重插值的幂。 - Marco Sandri
1
完美的!它可用啦! - Forever
1个回答

3

你可以使用as.formula(paste(day, "~ 1"))代替day~1


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接