Hi, On Tue, Jun 21, 2011 at 11:27 AM, pigpigmeow <gloryk...@hotmail.com> wrote: > i read a book from WOOD, there's an example which is talking about the > pollutant. > > library(gamair) > library(mgcv)
data(chicago) # otherwise this isn't reproducible > y<-gam(death~s(time,bs="cr",k=200)+s(pm10median,bs="cr")+s(so2median,bs="cr")+s(o3median,bs="cr")+s(tmpd,bs="cr"),data=chicago,family=Possion) # this line won't work y<-gam(death~s(time,bs="cr",k=200)+s(pm10median,bs="cr")+s(so2median,bs="cr")+s(o3median,bs="cr")+s(tmpd,bs="cr"),data=chicago,family=poisson()) > lag.sum<-function(a,10,11) > {n<-length(a) > b<-rep(0,n-11) > for(i in 0:(11-10)) > b<-b+a[(i+1):(n-11+i)] > > b} Why would you pass an unnamed constant to a function, and then try to change them later? When you use lag.sum(), you try to set those arguments to other values. lag.sum<-function(a1, a2, a3) { n<-length(a1) b<-rep(0, n-a3) for(i in 0:(a2-a3)) b<- b + a1[(i+1):(n-a3+i)] b } > death<-chicago$death[4:5114] > time<-chicago$time[4:5114] > o3<-lag.sum(chicago$o3median,0,3) > tmp<-lag.sum(chicago$tmpd,0,3) Like here. Your function hard-coded the values in, or tried to, and yet you want 0 and 3 now instead of 10 and 11. > pm10<-lag.sum(log(chicago$pm10median+40),0,3) > so2<-lag.sum(log(chicago$so2median+10),0,) > > I don't know what is the script (Bold font ) used for...... This is a plain-text list. Bold font doesn't show up. > and it shows "Error: unexpected numeric constant in "lag.sum<-function(a,10" > ", why? > > anyone can answer me? > I don't have the book you reference, but I wonder if that's really what it says. Sarah -- Sarah Goslee http://www.functionaldiversity.org ______________________________________________ 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.