library(openxlsx) b<-read.xlsx("data18-22IQR.xlsx") b$date<-as.Date(b$date,origin="1899-12-30") b$dow<-ifelse(b$dow=="Saturday"|b$dow=="Sunday",0,1) b$dow<-factor(b$dow,levels = c(0,1),labels = c("weekend","weekday")) b$holiday<-factor(b$holiday,levels = c(0,1),labels = c("nonholiday","holiday")) library(mgcv) library(splines) library(ggplot2) library(dlnm) library(reshape2) #### cb.TM<-crossbasis(b$temp,lag = 7,argvar = list(fun="ns",df=3),arglag = list(fun="ns",df=3)) cb.pm2.5<-crossbasis(b$PM25,lag=7,argvar = list(fun="lin"),arglag = list(fun="ns",df=3)) cb.pm10<-crossbasis(b$PM10,lag=7,argvar = list(fun="lin"),arglag = list(fun="ns",df=3)) cb.SO2<-crossbasis(b$SO2,lag=7,argvar = list(fun="lin"),arglag = list(fun="ns",df=3)) cb.CO<-crossbasis(b$CO,lag=7,argvar = list(fun="lin"),arglag = list(fun="ns",df=3)) cb.NO2<-crossbasis(b$NO2,lag=7,argvar = list(fun="lin"),arglag = list(fun="ns",df=3)) model1<-glm(b$morb~ cb.SO2+cb.TM+ns(b$time,df=9*5)+b$holiday+b$dow,family=quasipoisson,data=b) pred.SO2<-crosspred(cb.SO2,model1,cen=0.8379333,at=0.8379333:1.8379333,bylag =1,cumul = T) E1<-pred.SO2$cumRRfit["1.8379333",] E2<-pred.SO2$cumRRlow["1.8379333",] E3<-pred.SO2$cumRRhigh["1.8379333",] E<-rbind(E1,E2,E3) library(tidyr) E4<-t(E) E4<-as.data.frame(E4) E4$E1<-round(E4$E1,3) E4$E2<-round(E4$E2,3) E4$E3<-round(E4$E3,3) E4$a<-paste(E4$E1,E4$E2,sep = "(") E4$b<-paste(E4$a,E4$E3,sep = "-") E4$C<-paste(E4$b,"",")") write.csv(E4,file = "E4.CSV")