R自动克里格循环(包自动映射)
我有一个包含每日观察的数据框,我想对其进行插值。我使用automap为每一天构建一个变异函数,然后应用于新数据。我尝试运行一个循环,并将结果放入一个新的数据帧中。不幸的是,包含结果的数据框只包含最后预测的日期R自动克里格循环(包自动映射),r,loops,automap,R,Loops,Automap,我有一个包含每日观察的数据框,我想对其进行插值。我使用automap为每一天构建一个变异函数,然后应用于新数据。我尝试运行一个循环,并将结果放入一个新的数据帧中。不幸的是,包含结果的数据框只包含最后预测的日期 coordinates(mydata) <- ~lat+long coordinates(new_data) <- ~lat+long df <- data.frame(matrix(nrow=50,ncol=10)) #new data frame for predic
coordinates(mydata) <- ~lat+long
coordinates(new_data) <- ~lat+long
df <- data.frame(matrix(nrow=50,ncol=10)) #new data frame for predicted valeus
for(i in 1:ncol(mydata))
kriging_new <- autoKrige(mydata[,i],mydata,newdata)
pred <- kriging_new$krige_output$var1.pred
df[,i] <- data.frame(pred)
我还收到一条警告,说:
Warning message:
In autofitVariogram(formula, data_variogram, model = model, kappa = kappa, :
Some models where removed for being either NULL or having a negative sill/range/nugget,
set verbose == TRUE for more information
如果我为每一行手动执行自动克里格,一切都会正常工作。循环似乎不像通常那样工作。这是automap软件包中的问题吗
非常感谢 我想你忘了把代码放在你的
for
循环中的花括号里。因此,您将执行循环10次,每次都用自身覆盖kriging\u new
:
for(i in 1:ncol(mydata))
kriging_new <- autoKrige(mydata[,i],mydata,newdata)
始终使用多行语句编写循环,如下所示:
for (condition) {
statement1
statement2
...
}
正确的!谢谢!想弄明白这一点太久了,一定是完全瞎了:-)现在可以了!
pred <- kriging_new$krige_output$var1.pred
df[, i] <- data.frame(pred)
for (condition) {
statement1
statement2
...
}