arun
2013-Jun-10 01:34 UTC
[R] Loop through variables and estimate effects on several outcomes
Hi, I assume this is what you wanted: #########Your code library(gamair) data(chicago) ?library(mgcv) library(splines) chicago1<- chicago chicago1$date<- seq(from=as.Date("1987-01-01"),to=as.Date("2000-12-31"),length=5114) chicago1$trend<-seq(dim(chicago1)[1])? names(chicago1) [2] <-"pm10" names(chicago1) [3] <-"pm25" names(chicago1) [4] <-"ozone" names(chicago1) [5] <-"so2" names(chicago1) [7]?? <-"temp" chicago1$cv<-rpois(5114, lambda = 35) chicago1$resp<-rpois(5114, lambda = 13) chicago1$trend<-seq(dim(chicago1)[1]) chicago1$year<-as.numeric(format(chicago1$date,"%Y")) m1<-glm(death ~ pm10 + pm25+ ns(trend,35) + ns(temp, 6), poisson , na.action = na.omit , data =chicago1) m4<-gam(death ~ pm10 + pm25+ s(trend,k=35)? + s(temp, k=6), quasipoisson , na.action = na.omit , data =chicago1) ####Extracting estimates ?coef(summary(m1))[-1,1][!grepl("ns",names(coef(summary(m1))[-1,1]))] #??????? pm10???????? pm25 # 0.001772681 -0.001481798 summary(m4)$p.coeff[-1] ?#?????? pm10???????? pm25 ?#0.001346275 -0.001182925 varlist<-names(chicago1)[c(1,10:11)] ?varlist #[1] "death" "cv"??? "resp" ####glm fun2glm<- function(varName){ res<- sapply(varName,function(x){ model1<- glm(get(x)~ pm10 + pm25+ ns(trend,35)? + ns(temp, 6) , poisson , na.action = na.omit , data =chicago1) sM<- coef(summary(model1))[-1,1] indx<- grepl("ns",names(sM)) sM1<- sM[!indx] }) res } fun2glm(varlist) #??????????? death??????????? cv????????? resp #pm10? 0.001772681? 0.0003505286 -0.0006736290 #pm25 -0.001481798 -0.0004193602? 0.0005567137 ####gam fun2gam<- function(varName){ ?res<- sapply(varName,function(x){ ?model1<- gam(get(x)~pm10+pm25+s(trend,k=35)+s(temp,k=6),quasipoisson,na.action=na.omit,data=chicago1) ?sM<- summary(model1)$p.coeff[-1] ? }) ?res ?} fun2gam(varlist) #??????????? death??????????? cv????????? resp #pm10? 0.001346275? 0.0003902584 -0.0008447569 #pm25 -0.001182925 -0.0007072599? 0.0002807046 A.K. ________________________________ From: Gustav Sigtuna <gsigtuna at gmail.com> To: arun <smartpink111 at yahoo.com> Sent: Friday, June 7, 2013 5:56 PM Subject: Re: Loop through variables and estimate effects on several outcomes Hi Arun,? Thanks for your response. I use GLM and GAM for Poisson distributed data. I have attached a sample code and data. In the summary I am interested to extract the linear estimates and not the spline terms. Thanks for your help G On Fri, Jun 7, 2013 at 12:01 AM, <smartpink111 at yahoo.com> wrote: <quote author='decoder'>>HI, >No problem. >Are you using the same dataset or different? ?If you are using poisson or other distribution, the summary output table may be a bit different. ?If you can show the codes and an example dataset (if different), I can take a look. > > >Thanks A.K. > >The code works for lm and thanks for that. I have some outcomes which are >counts and wanted to run GLM with the same code and got the error message >below. > >> fun2(varlist) >Error in glm.fit(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ?: >? (subscript) logical subscript too long > >Can you explain what went wrong with the GLM code and how to rectify it? > >Thanks ></quote> >Quoted from: >http://r.789695.n4.nabble.com/Loop-through-variables-and-estimate-effects-on-several-outcomes-tp4668814p4668875.html > > >_____________________________________ >Sent from http://r.789695.n4.nabble.com > >