在下面找到运行时model0
,我收到一条错误消息“ eval(expr, envir, enclos) 中的错误:找不到函数“Lag”。在发布此消息之前,我已经扫描了这个论坛和网络,但找不到相关的解决方案。我相信我的模型中的错误可能不是由于Lag
下面显示的其他模型(1 和 2)可以运行而不会遇到任何问题。
我的主要动机是通过循环遍历解释变量及其滞后列表来运行 GAM 模型。
library(quantmod)
library(gamair)
library(mgcv)
data(chicago)
names(chicago)
varlist0 <- c("pm10median", "pm25median", "o3median", "so2median")
model0<- lapply(varlist0, function(x) {
gam(substitute(death ~ s(time,bs="cr",k=200)+ s(tmpd,bs="cr") + Lag(i,0:4) , list(i = as.name(x))),family=quasipoisson,na.action=na.omit, data=chicago)
})
Gam + Lag 没有错误信息:
model1<- gam(death ~ s(time,bs="cr",k=200)+ s(tmpd,bs="cr") + Lag(pm10median, 0:4),family=quasipoisson,na.action=na.omit, data=chicago)
带有 Lag 且没有错误消息的 Lm:
hsb2 <- read.csv("http://www.ats.ucla.edu/stat/data/hsb2.csv")
varlist <- names(hsb2)[8:11]
models <- lapply(varlist, function(x) {
lm(substitute(read ~ Lag(i,0:4) , list(i = as.name(x))), data = hsb2)
})
我无法破译此错误的原因。我在第一个模型中做错了什么?