【发布时间】: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 <-list(type="bs", df=2[i],cen=50),其他的都在循环之外。如果您希望 all 在循环中包含这些行,则应将它们括在大括号中(在我看来,这正是您尝试做的……但是您忘记了开头的大括号{之后for(i in 1:30)... 并没有忘记最后一个)。 -
使用可读的变量名!它们极大地提高了代码的可读性!
标签: r