Взвешивание обратного расстояния: ошибка в spDists (s0, s): ncol (x) == ncol (y) не TRUE в пакете gstat - PullRequest
1 голос
/ 06 ноября 2019

Я хочу сделать «простое» обратное взвешивание на расстоянии. В прошлом я использовал функцию idw в gstat, но она перестала работать. Я нашел эквивалентный idw0 в том же пакете, но я не могу заставить это работать. Этот пример кода должен произвести 50 оценок для z-hat в 50 точках в неизвестном фрейме данных .df.

library(gstat)

set.seed(1)
x<-runif(100,0,1)
y<-runif(100,0,1)
z<-runif(100,0,1)
known.df<-data.frame(x,y,z)

x<-runif(50,0,1)
y<-runif(50,0,1)
unknown.df<-data.frame(x,y)

idw<-idw0(z~1,known.df,unknown.df)
idw<-idw0(z~1,known.df,unknown.df,y=as.matrix(known.df$z))

Это приводит к ошибкам

> idw<-idw0(z~1,known.df,unknown.df)
Error in spDists(s0, s) : ncol(x) == ncol(y) is not TRUE
> idw<-idw0(z~1,known.df,unknown.df,y=as.matrix(known.df$z))
Error in spDists(s0, s) : ncol(x) == ncol(y) is not TRUE

Y имеет длину 50,а что такое х?

1 Ответ

1 голос
/ 06 ноября 2019

Необходимо явно обозначить поля координат.

library(gstat)
library(sp)

set.seed(1)
x<-runif(100,0,1)
y<-runif(100,0,1)
z<-runif(100,0,1)
known.df<-data.frame(x,y,z)
coordinates(known.df) = ~ x + y

x<-runif(50,0,1)
y<-runif(50,0,1)
unknown.df<-data.frame(x,y)
coordinates(unknown.df) = ~ x + y

idw<-idw0(z~1,known.df,unknown.df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...