使用 krige.cv 时迭代 sp 数据帧的多个因变量(列)

Iterate over multiple dependent variables (columns) of an sp dataframe when using krige.cv

我有一个名为 rain 的 SpatialPointsDataframe,我想为其最后 10 列(因变量)中的每一列拟合变差函数并执行交叉验证,如下所示:

  fit.reg.vgm <- autofitVariogram(
  column (dependent variable) ~ X + Y + Z + AS + SL,
  rain,
  model = c("Sph", "Exp", "Gau", "Lin", "Log"),
  fix.values = c(NA, NA, NA),
  verbose = FALSE,
  GLS.model = NA,
  start_vals = c(NA, NA, NA),
  miscFitOptions = list()
)
  cv <-krige.cv(column (dependent variable) ~ X + Y + Z + AS + SL, rain, fit.reg.vgm$var_model)

有谁知道如何构造这样的 for 循环?

提前致谢!

您需要构建一个公式。试试 formula()paste()。类似于

x <- c("a", "b", "c")
out <- list()

for (i in seq_along(x)) {
  out[[i]] <- formula(paste(x[i], "~ X + Y + Z"))
}


> out
[[1]]
a ~ X + Y + Z

[[2]]
b ~ X + Y + Z

[[3]]
c ~ X + Y + Z

选项reformulate

out <- vector('list', length(x))
for(i in seq_along(x)) {out[[i]] <- reformulate(c("X", "Y", "Z"), response = x[i]) }
out
#[[1]]
#a ~ X + Y + Z

#[[2]]
#b ~ X + Y + Z

#[[3]]
#c ~ X + Y + Z