Возможно, есть лучший способ, но поскольку я новичок в R и у меня уже установлен код IDW, я пытаюсь получить медиану всех точек в пределах 2000 метров, изменив код IDW, установив весовую мощность (idp) вблизи нуля, поэтому более близкие точки взвешены так же, как и дальние.Как я могу получить медиану всех измерений на определенном расстоянии?
Я предполагаю, что он говорит NA, когда я запускаю код ниже с maxdist = 2000, потому что у некоторых точек нет соседей в пределах 2000 метров. Самый маленький maxdist, с которым я могу работать, составляет ~ 40 000, даже если я установил nmin на ноль.
Есть ли способ сказать, чтобы игнорировать точки без соседей в пределах 2000 метров, или кто-то знает лучший способ сделать это?
Вот мой код:
library(gstat)
clean3145 = read.csv("clean3145.csv")
#Set up the k-fold validation
set.seed(88)
groups <- sample(1:5, nrow(clean3145), replace=TRUE)
#res=result=R=Pearson's correlation between predicted and actual arsenic concentration
MEDres<- rep(NA, 5)
r <- list()
for (k in 1:5) {
print(k)
flush.console()
train <- clean3145[groups!=k, ]
test <- clean3145[groups==k, ]
med <- gstat(formula = As1~1, locations = ~UTMNM+UTMEM, data=train, nmin=0, maxdist=40000, set=list(idp = .01))
medpred <- predict(med, test)$var1.pred
MEDres[k] <- cor(test$As1, medpred)
}
#Show the mean correlation for the 5 different training-test dataset pairs in K-fold validation
mean(MEDres)
Спасибо за вашу помощь!
Дэйв, во всех отношениях, это был не совсем ответ; если мой ответ ответит на ваш вопрос, отметьте его как таковой. –
Спасибо Edzer, я постарался отметить его как полезный, но я только что присоединился и не имел требуемого 15 баллов репутации. –