我正在为 R 中 GWmodel 包中的 gwr.basic 函数运行以下 for 循环。我需要做的是收集任何给定带宽的估计参数的平均值。
代码如下:
library(GWmodel)
data("DubVoter")
#Dub.voter
LARentMean = list()
for (i in 20:21)
{
gwr.res <- gwr.basic(GenEl2004 ~ DiffAdd + LARent + SC1 + Unempl + LowEduc + Age18_24 + Age25_44 + Age45_64, data = Dub.voter, bw = i, kernel = "bisquare", adaptive = TRUE, F123.test = TRUE)
a <- mean(gwr.res$SDF$LARent)
LARentMean[i] <- a
}
outcome = unlist(LARentMean)
> outcome
[1] -0.1117668 -0.1099969
但是,返回结果非常慢。我需要更大的范围,例如 20:200。有没有办法加快这个过程?如果没有,如何有一个步进范围,比如 20 到 200,步长为 5,以减少操作次数?
我是 R 的新手。我在 SO 上读到 R 以 for 循环速度慢而闻名,并且有更有效的替代方案。欢迎对这一点进行更明确的说明。