Как за цикл переменной внутри функции R
Я пользователь Python, плохо знакомый с R. Прямо сейчас я имею дело с пакетом R GWmodel.
Глядя на функцию для основного GWR, это выглядит так:
gwr.res <- gwr.basic(GenEl2004 ~ DiffAdd + LARent + SC1 + Unempl + LowEduc + Age18_24 + Age25_44 + Age45_64, data = Dub.voter, bw = 100, kernel = "bisquare", adaptive = TRUE, F123.test = TRUE)
Что мне нужно, так это собрать среднее значение оценочных параметров каждой переменной и добавить его в список для любого заданного значения bw (пропускной способности).
в терминах Python это будет выглядеть так:
LARentMean = []
SC1Mean = []
UnenmplMean = []
LowEducMean = []
Age18_24Mean = []
Age25_44Mean = []
Age45_64Mean = []
for i in range (20,400):
gwrres = 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 = gwrres(LARent).mean() #a <- mean(gwrres$SDF$LARent)
b = gwrres(SC1).mean() #b <- mean(gwrres$SDF$SC1)
c = gwrres(Unenmpl).mean() #c <- mean(gwrres$SDF$Unempl)
d = gwrres(lowEduc).mean() #d <- mean(gwrres$SDF$LowEduc)
e = gwrres(Age18_24).mean() #e <- mean(gwrres$SDF$Age18_24)
f = gwrres(Age25_44).mean() #f <- mean(gwrres$SDF$Age25_44)
g = gwrres(Age45_64).mean() #g <- mean(gwrres$SDF$Age45_64)
LARentMean.append(a)
SC1Mean.append(b)
UnenmplMean.append(c)
LowEducMean.append(d)
Age18_24Mean.append(e)
Age25_44Mean.append(f)
Age45_64Mean.append(g)
1 ответ
Решение
Вы можете использовать lapply, который будет зацикливаться на списке, например:
l = lapply(20:400, function(i){
gwr.basic(GenEl2004 ~ DiffAdd + LARent + SC1 + Unempl + LowEduc +
Age18_24 + Age25_44 + Age45_64, data=Dub.voter, bw=i,
kernel="bisquare", adaptive=T, F123.test=T)
})
Я понятия не имею, что генерирует gwr.basic в качестве выходных данных, поэтому вы можете захотеть, чтобы дополнительная строка принимала только среднее значение (если оно выдает больше информации).