首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何循环R函子中的变量

如何循环R函子中的变量
EN

Stack Overflow用户
提问于 2015-08-22 10:42:42
回答 1查看 123关注 0票数 0

我是一个刚接触R的python用户,现在我正在处理R包GWmodel。

查看基本GWR的函数,如下所示:

代码语言:javascript
复制
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的话来说,这就像:

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-22 11:17:22

您可以使用将循环到列表的,例如:

代码语言:javascript
复制
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作为输出生成了什么,所以您可能希望额外的一行只取平均值(如果它提供了更多的信息)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32155188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档