【问题标题】:Need help for R coding需要 R 编码的帮助
【发布时间】:2013-10-01 04:34:13
【问题描述】:

我是使用 R 的新手,我不熟悉编写 R 循环。我需要你帮助我完成以下 R 编程。 R 代码的目标是获取所有具有不同 df 的模型的 AIC。

我写的R代码是:

library(splines)
library(dlnm)

For (i in 1:30)
    argvar1 <-list(type="bs", df=2[i],cen=50)
    arglag1<- list(type="ns",df=3)
    cb1 <-crossbasis(AFH6w,lag=24,argvar=argvar1,arglag=arglag1)
    argvar2 <-list(type="ns", df=11, cen=-2)
    arglag2 <- list(type="ns",df=3)
    cb2 <-crossbasis(OutTw,lag=24,argvar=argvar2,arglag=arglag2)
    model1 <-lm(NH3cH6w~ cb1 +cb2+DenH6w+as.factor(Month))
    AIC[i]=AIC(model1)
}

我认为最后一行有问题,但经过精疲力尽的挣扎后我无法弄清楚。

非常感谢您的帮助!

舒乐

【问题讨论】:

  • 你的代码写法,for循环中唯一的就是第一行:argvar1 &lt;-list(type="bs", df=2[i],cen=50),其他的都在循环之外。如果您希望 all 在循环中包含这些行,则应将它们括在大括号中(在我看来,这正是您尝试做的……但是您忘记了开头的大括号 { 之后for(i in 1:30)... 并没有忘记最后一个)。
  • 使用可读的变量名!它们极大地提高了代码的可读性!

标签: r


【解决方案1】:

您缺少左大括号,for 应为小写:

for (i in 1:30) {
        argvar1 <-list(type="bs", df=2[i],cen=50)
        arglag1<- list(type="ns",df=3)
        ...
}

除此之外很难说。发帖前请阅读How to make a great R reproducible example?。

【讨论】:

    猜你喜欢
    • 2019-02-12
    • 2014-04-06
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 2020-08-08
    • 2016-06-14
    相关资源
    最近更新 更多