循环列

时间:2013-11-07 08:31:58

标签: r loops

为了估计pm10和o3对单个结果(代码中的死亡)的独立影响,我可以使用下面找到的脚本。在该模型中,“pm10”和“o3”对死亡的影响是分开估计的。现在,如果我有几个结果,我如何修改此脚本以适应这种情况?在示例数据集中,感兴趣的结果是death,cvd和resp,我的目标是通过使用“pm10”和“o3”作为预测变量来为每个模型运行一个模型。因此我希望运行6个模型(例如两个cvd的模型:-one与pm10和一个与03)。

  library(quantmod)
    library(mgcv)
    library(dlnm) 
    df <- chicagoNMMAPS
    #out<- c("death", "cvd", "resp ")

    varlist0 <- c("pm10", "o3")
    m1 <- lapply(varlist0,function(v) {
        f <- sprintf("death~ s(time,bs='cr',k=200)+s(temp,bs='cr') + Lag(%s,0:6)",v)
        gam(as.formula(f),family=quasipoisson,na.action=na.omit,data=df) 
      })

1 个答案:

答案 0 :(得分:0)

我已经在R-help@r-project.org邮件列表上交叉发布了这个问题,Rui Barradas提供了以下答案。代码工作正常,但我发现数据有点慢。

m1 <- lapply(varlist0,function(v) { 
        lapply(outcomes, function(o){ 
          f <- sprintf("%s~ s(time,bs='cr',k=200)+s(temp,bs='cr') + Lag(%s,0:6)", o, v) 
                gam(as.formula(f),family=quasipoisson,na.action=na.omit,data=df) 
       })}) 

m1 <- unlist(m1, recursive = FALSE) 
m1