Hello,
Once again, use lapply.
mlist <- lapply(seq_along(m2), function(i) m2[[i]])
names(mlist) <- paste0("mod", seq_along(mlist))
slist <- lapply(mlist, summary)
plist <- lapply(slist, `[[`, 'p.table')
Hope this helps,
Rui Barradas
Em 12-11-2013 13:28, Kuma Raj escreveu:
Thanks for the script which works perfectly. I am interested to do
model checking and also interested to extract the coefficients for
linear and spline terms. For model checkup I could run this script
which will give different plots to test model fit: gam.check(m2[[1]]).
Thanks to mnel from SO I could also extract the linear terms with the
following script:
m2 <- unlist(m1, recursive = FALSE) ## unlist
First extract the model elements:
mod1<-m2[[1]]
mod2<-m2[[2]]
mod3<-m2[[3]]
mod4<-m2[[4]]
mod5<-m2[[5]]
mod6<-m2[[6]]
And run the following:
mlist <- list(mod1, mod2, mod3,mod4,mod5,mod6) ## Creates a list of models
names(mlist) <- list("mod1", "mod2", "mod3","mod4","mod5","mod6")
slist <- lapply(mlist, summary) ## obtain summaries
plist <- lapply(slist, `[[`, 'p.table') ## list of the coefficients
linear terms
For 6 models this is relatively easy to do, but how could I shorten
the process if I have large number of models?
Thanks
On 12 November 2013 12:32, Rui Barradas <ruipbarra...@sapo.pt> wrote:
Hello,
Use nested lapply(). Like this:
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
Hope this helps,
Rui Barradas
Em 12-11-2013 09:53, Kuma Raj escreveu:
I have asked this question on SO, but it attracted no response, thus I am
cross- posting it here with the hope that someone would help.
I want to estimate the effect of pm10 and o3 on three outcome(death, cvd
and resp). What I want to do is run one model for each of the main
predictors (pm10 and o3) and each outcome(death, cvd and resp). Thus I
expect to obtain 6 models. The script below works for one outcome (death)
and I wish to use it for more dependent variables.
library(quantmod)
library(mgcv)
library(dlnm)
df <- chicagoNMMAPS
outcomes<- 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)
})
Thanks
[[alternative HTML version deleted]]
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.