########## #R CODE TO PLOT HUMAN MORTALITY DATABASE LIFE TABLE DATA FOR ITALY #THIS CODE IS BASED ON: https://github.com/edyhsgr/CACountyPyramids # #THANKS TO CARL BOE'S HMD2R (applieddemogtoolbox.github.io/#HMD2R) TO DOWNLOAD THE DATA FROM THE HUMAN MORTALITY DATABASE (mortality.org) # #EDDIE HUNSINGER DECEMBER 2021 (UPDATED JANUARY 2022) # #THERE IS NO WARRANTY FOR THIS CODE #THIS CODE HAS NOT BEEN TESTED AT ALL-- PLEASE LET ME KNOW IF YOU FIND ANY PROBLEMS (edyhsgr@gmail.com) ########## ##### ##Application of HMD2R #source(file="https://raw.githubusercontent.com/AppliedDemogToolbox/Boe_HMD2R/master/HMD2R.R") # #myname<- "username" ## your registered HMD username / email address #mypass<- "password" ## mortality.org / HMD account password # ##get everything for a country #ITA<-HMD2R("ITA",username=myname,password=mypass) # #ITA_fltper<-data.frame(ITA$fltper_1x1) #ITA_mltper<-data.frame(ITA$mltper_1x1) #ITA_bltper<-data.frame(ITA$bltper_1x1) #ITA_fltcoh<-data.frame(ITA$fltcoh_1x1) #ITA_mltcoh<-data.frame(ITA$mltcoh_1x1) #ITA_bltcoh<-data.frame(ITA$bltcoh_1x1) # #write.table(ITA_fltper,file="HMD_ITA_fltper_1x1_December2021.csv",sep=",") #write.table(ITA_mltper,file="HMD_ITA_mltper_1x1_December2021.csv",sep=",") #write.table(ITA_bltper,file="HMD_ITA_bltper_1x1_December2021.csv",sep=",") #write.table(ITA_fltper,file="HMD_ITA_fltcoh_1x1_December2021.csv",sep=",") #write.table(ITA_mltper,file="HMD_ITA_mltcoh_1x1_December2021.csv",sep=",") #write.table(ITA_bltper,file="HMD_ITA_bltcoh_1x1_December2021.csv",sep=",") ##### library(shiny) ui<-fluidPage( tags$h3("Italy Life Table Survivorship and Deaths Distribution Viewer"), p("Data from the Human Mortality Database, December 2021. Human Mortality Database web address: ", tags$a(href="https://www.mortality.org/", "mortality.org")), hr(), sidebarLayout( sidebarPanel( selectInput("ltFunction","Life table function",c("lx"="lx","dx"="dx"),selected="lx"), selectInput("percoh","Period or cohort?",c("Period"="period","Cohort"="cohort"),selected="period"), #selectInput("YEAR_1","Year for fill",choices=1872:2018,selected=1917), sliderInput("YEAR_1",label = "Year for fill",min = 1872, max = 2018, value = 1918,step= 1,sep=""), #selectInput("YEAR_2","Year for outline",choices=1872:2018,selected=1918), sliderInput("YEAR_2",label = "Year for outline",min = 1872, max = 2018, value = 1917,step= 1,sep=""), hr(), sliderInput("YAxisRange",label = "Vertical axis maximum",min = 1, max = 210, value = 110,step= 1,sep=""), selectInput("SetXAxes", "Set horizontal-axes manually?",c("No"="NO","Yes"="YES"),), numericInput("XAxesMax","If yes, horizontal-axes maximum (radix is 100,000)",100000,0,100000,step=1000), #sliderInput("XAxesMax","If yes, horizontal-axes maximum (radix is 100,000)",min=0,max=100000,value=100000,step=1000,sep=""), hr(), sliderInput("BA",label = "Brass' relational logit alpha adjuster for fill year",min = -2, max = 2, value = 0,step= .1,sep=""), sliderInput("BB",label = "Brass' relational logit beta adjuster for fill year",min = .1, max = 2, value = 1,step= .1,sep=""), hr(), selectInput("CombineYEAR",label = "Combine two years for fill year?",c("Yes"="YES","No"="NO"),selected="NO"), #selectInput("YEAR_1b","If yes, year to add",choices=1872:2018,selected=1918), sliderInput("YEAR_1b",label = "If yes, year to add",min = 1872, max = 2018, value = 1918,step= 1,sep=""), sliderInput("propYEAR_1",label = "Added-year's portion of radix",min = 0, max = 1, value = .5,step= .1,sep=""), sliderInput("PauseQRange","Freeze nqx over an age range for fill year added portion",min=1,max=210,value=c(35,35),step=1), hr(), p(tags$a(href="https://www.mortality.org/File/GetDocument/hmd.v6/ITA/Public/InputDB/ITAcom.pdf", "About Mortality Data for Italy,"), " via the ", tags$a(href="https://www.mortality.org/Country/Country?cntr=ITA", "main page for Italy."), ), p("This interface was made with ", tags$a(href="https://shiny.rstudio.com/", "Shiny for R."), tags$a(href="https://github.com/edyhsgr/DeathsDistributionGraphing/blob/master/lx_ndx_Italy.R", "R code to access the data and run the application."), "Eddie Hunsinger, December 2021 (updated January 2022)."), width=3 ), # sideBarPanel mainPanel( plotOutput("plots") ) ) # sideBarLayout ) # fluidPage ##### ##Input data cat <- read.table(file="https://raw.githubusercontent.com/edyhsgr/DeathsDistributionGraphing/master/agelabels_210.csv",sep=",",header=TRUE) cat <- array(cat$x[1:215]) ITA_fltper<-data.frame(read.table(file="https://raw.githubusercontent.com/edyhsgr/DeathsDistributionGraphing/master/Inputs/HMD_ITA_fltper_1x1_December2021.csv",header=TRUE,sep=",")) ITA_mltper<-data.frame(read.table(file="https://raw.githubusercontent.com/edyhsgr/DeathsDistributionGraphing/master/Inputs/HMD_ITA_mltper_1x1_December2021.csv",header=TRUE,sep=",")) #ITA_bltper<-data.frame(read.table(file="https://raw.githubusercontent.com/edyhsgr/DeathsDistributionGraphing/master/Inputs/HMD_ITA_bltper_1x1_December2021.csv",header=TRUE,sep=",")) ITA_fltcoh<-data.frame(read.table(file="https://raw.githubusercontent.com/edyhsgr/DeathsDistributionGraphing/master/Inputs/HMD_ITA_fltcoh_1x1_December2021.csv",header=TRUE,sep=",")) ITA_mltcoh<-data.frame(read.table(file="https://raw.githubusercontent.com/edyhsgr/DeathsDistributionGraphing/master/Inputs/HMD_ITA_mltcoh_1x1_December2021.csv",header=TRUE,sep=",")) #ITA_bltcoh<-data.frame(read.table(file="https://raw.githubusercontent.com/edyhsgr/DeathsDistributionGraphing/master/Inputs/HMD_ITA_bltcoh_1x1_December2021.csv",header=TRUE,sep=",")) ##### server<-function(input, output) { output$plots<-renderPlot({ par(mfrow=c(1,2), mai=c(2,.575,.5,0.05)) ##### ##### ##GRAPHING ##### ##### options(scipen = 999) outline_color = rgb(0,.65,.95) FreezeQStart<-input$PauseQRange[1]+1 FreezeQEnd<-input$PauseQRange[2]+1 ifelse(input$CombineYEAR=="YES" & input$PauseQRange[1]>105,MaxPause<-1,MaxPause<-0) ifelse(input$CombineYEAR=="YES" & input$percoh=="cohort" & input$YEAR_1b>1927,CombineCohortMax<-1,CombineCohortMax<-0) ifelse(input$percoh=="period",c(ITA_flt<-ITA_fltper,ITA_mlt<-ITA_mltper),c(ITA_flt<-ITA_fltcoh,ITA_mlt<-ITA_mltcoh)) select <- subset(ITA_flt, ITA_flt$Year==input$YEAR_1) if(input$ltFunction=="lx") {female <- c(select$lx,seq(0,0,length.out=100))} if(input$ltFunction=="dx") {female <- c(select$dx,seq(0,0,length.out=100))} select2 <- subset(ITA_flt, ITA_flt$Year==input$YEAR_2) if(input$ltFunction=="lx") {female2 <- c(select2$lx,seq(0,0,length.out=100))} if(input$ltFunction=="dx") {female2 <- c(select2$dx,seq(0,0,length.out=100))} select3<-subset(ITA_mlt, ITA_mlt$Year==input$YEAR_1) if(input$ltFunction=="lx") {male <- c(select3$lx,seq(0,0,length.out=100))} if(input$ltFunction=="dx") {male <- c(select3$dx,seq(0,0,length.out=100))} select4<-subset(ITA_mlt, ITA_mlt$Year==input$YEAR_2) if(input$ltFunction=="lx") {male2 <- c(select4$lx,seq(0,0,length.out=100))} if(input$ltFunction=="dx") {male2 <- c(select4$dx,seq(0,0,length.out=100))} if(input$CombineYEAR=="YES") { selectb<-subset(ITA_flt, ITA_flt$Year==input$YEAR_1b) female_b_q <- c(selectb$qx[1:(FreezeQStart)], rep(selectb$qx[FreezeQStart+1],FreezeQEnd-FreezeQStart+1), selectb$qx[(FreezeQStart+2):111], seq(0,0,length.out=(101-ifelse((FreezeQEnd-FreezeQStart)<=100,(FreezeQEnd-FreezeQStart),101)))) if(input$ltFunction=="lx") {female_b <- c(selectb$lx,seq(0,0,length.out=100)) for(i in 2:211) {female_b[i]<-female_b[i-1]*(1-female_b_q[i-1])} } if(input$ltFunction=="dx") {female_b_l <- c(selectb$lx,seq(0,0,length.out=100)) for(i in 2:211) {female_b_l[i]<-female_b_l[i-1]*(1-female_b_q[i-1])} female_b <- c(selectb$dx,seq(0,0,length.out=100)) for(i in 1:210) {female_b[i]<-female_b_l[i]-female_b_l[i+1]} } select3b<-subset(ITA_mlt, ITA_mlt$Year==input$YEAR_1b) male_b_q <- c(select3b$qx[1:(FreezeQStart)], rep(select3b$qx[FreezeQStart+1],FreezeQEnd-FreezeQStart+1), select3b$qx[(FreezeQStart+2):111], seq(0,0,length.out=(101-ifelse((FreezeQEnd-FreezeQStart)<=100,(FreezeQEnd-FreezeQStart),101)))) if(input$ltFunction=="lx") {male_b <- c(selectb$lx,seq(0,0,length.out=100)) for(i in 2:211) {male_b[i]<-male_b[i-1]*(1-male_b_q[i-1])} } if(input$ltFunction=="dx") {male_b_l <- c(selectb$lx,seq(0,0,length.out=100)) for(i in 2:211) {male_b_l[i]<-male_b_l[i-1]*(1-male_b_q[i-1])} male_b <- c(selectb$dx,seq(0,0,length.out=100)) for(i in 1:210) {male_b[i]<-male_b_l[i]-male_b_l[i+1]} }} if(input$CombineYEAR=="NO") { selectb<-subset(ITA_flt, ITA_flt$Year==input$YEAR_1) if(input$ltFunction=="lx") {female_b <- c(selectb$lx,seq(0,0,length.out=100))} if(input$ltFunction=="dx") {female_b <- c(selectb$dx,seq(0,0,length.out=100))} select3b<-subset(ITA_mlt, ITA_mlt$Year==input$YEAR_1) if(input$ltFunction=="lx") {male_b <- c(select3b$lx,seq(0,0,length.out=100))} if(input$ltFunction=="dx") {male_b <- c(select3b$dx,seq(0,0,length.out=100))} } if(input$ltFunction=="lx") { female<-female*(1-input$propYEAR_1)+female_b*input$propYEAR_1 male<-male*(1-input$propYEAR_1)+male_b*input$propYEAR_1 femaletemp<-female/100000 for (i in 2:length(femaletemp)) {femaletemp[i]<-.5*log(femaletemp[i]/(1-femaletemp[i]))} for (i in 2:length(female)) {female[i]<-1/(1+exp(-2*input$BA-2*input$BB*femaletemp[i]))*100000} maletemp<-male/100000 for (i in 2:length(maletemp)) {maletemp[i]<-.5*log(maletemp[i]/(1-maletemp[i]))} for (i in 2:length(male)) {male[i]<-1/(1+exp(-2*input$BA-2*input$BB*maletemp[i]))*100000} } if(input$percoh=="period") { if(input$ltFunction=="dx") { femaletemp<-female femaletemp[1]<-100000 for (i in 2:length(femaletemp)) {femaletemp[i]<-femaletemp[i-1]-female[i-1]} femaletemp_b<-female_b femaletemp_b[1]<-100000 for (i in 2:length(femaletemp_b)) {femaletemp_b[i]<-femaletemp_b[i-1]-female_b[i-1]} femaletemp<-femaletemp*(1-input$propYEAR_1)+femaletemp_b*input$propYEAR_1 #femaletemp<-female #femaletemp[1]<-100000 #for (i in 2:length(femaletemp)) {femaletemp[i]<-femaletemp[i-1]-female[i-1]} femaletemp<-femaletemp/100000 femaletemp[is.nan(femaletemp)|femaletemp<0]<-0 for (i in 2:length(femaletemp)) {femaletemp[i]<-.5*log(femaletemp[i]/(1-femaletemp[i]))} for (i in 2:length(femaletemp)) {femaletemp[i]<-1/(1+exp(-2*input$BA-2*input$BB*femaletemp[i]))*100000} femaletemp[1]<-100000 for(i in 1:(length(female)-1)) {female[i]<-femaletemp[i]-femaletemp[i+1]} #female[length(female)]<-100000-sum(female[1:(length(female)-1)]) maletemp<-male maletemp[1]<-100000 for (i in 2:length(maletemp)) {maletemp[i]<-maletemp[i-1]-male[i-1]} maletemp_b<-male_b maletemp_b[1]<-100000 for (i in 2:length(maletemp_b)) {maletemp_b[i]<-maletemp_b[i-1]-male_b[i-1]} maletemp<-maletemp*(1-input$propYEAR_1)+maletemp_b*input$propYEAR_1 #maletemp<-male #maletemp[1]<-100000 #for (i in 2:length(maletemp)) {maletemp[i]<-maletemp[i-1]-male[i-1]} maletemp<-maletemp/100000 maletemp[is.nan(maletemp)|maletemp<0]<-0 for (i in 2:length(maletemp)) {maletemp[i]<-.5*log(maletemp[i]/(1-maletemp[i]))} for (i in 2:length(maletemp)) {maletemp[i]<-1/(1+exp(-2*input$BA-2*input$BB*maletemp[i]))*100000} maletemp[1]<-100000 for(i in 1:(length(male)-1)) {male[i]<-maletemp[i]-maletemp[i+1]} #male[length(male)]<-100000-sum(male[1:(length(male)-1)]) } } if(input$percoh=="cohort" & input$YEAR_1<1928 & input$YEAR_2<1928 & CombineCohortMax!=1) { if(input$ltFunction=="dx") { femaletemp<-female femaletemp[1]<-100000 for (i in 2:length(femaletemp)) {femaletemp[i]<-femaletemp[i-1]-female[i-1]} femaletemp_b<-female_b femaletemp_b[1]<-100000 for (i in 2:length(femaletemp_b)) {femaletemp_b[i]<-femaletemp_b[i-1]-female_b[i-1]} femaletemp<-femaletemp*(1-input$propYEAR_1)+femaletemp_b*input$propYEAR_1 #femaletemp<-female #femaletemp[1]<-100000 #for (i in 2:length(femaletemp)) {femaletemp[i]<-femaletemp[i-1]-female[i-1]} femaletemp<-femaletemp/100000 femaletemp[is.nan(femaletemp)|femaletemp<0]<-0 for (i in 2:length(femaletemp)) {femaletemp[i]<-.5*log(femaletemp[i]/(1-femaletemp[i]))} for (i in 2:length(femaletemp)) {femaletemp[i]<-1/(1+exp(-2*input$BA-2*input$BB*femaletemp[i]))*100000} femaletemp[1]<-100000 for(i in 1:(length(female)-1)) {female[i]<-femaletemp[i]-femaletemp[i+1]} #female[length(female)]<-100000-sum(female[1:(length(female)-1)]) maletemp<-male maletemp[1]<-100000 for (i in 2:length(maletemp)) {maletemp[i]<-maletemp[i-1]-male[i-1]} maletemp_b<-male_b maletemp_b[1]<-100000 for (i in 2:length(maletemp_b)) {maletemp_b[i]<-maletemp_b[i-1]-male_b[i-1]} maletemp<-maletemp*(1-input$propYEAR_1)+maletemp_b*input$propYEAR_1 #maletemp<-male #maletemp[1]<-100000 #for (i in 2:length(maletemp)) {maletemp[i]<-maletemp[i-1]-male[i-1]} maletemp<-maletemp/100000 maletemp[is.nan(maletemp)|maletemp<0]<-0 for (i in 2:length(maletemp)) {maletemp[i]<-.5*log(maletemp[i]/(1-maletemp[i]))} for (i in 2:length(maletemp)) {maletemp[i]<-1/(1+exp(-2*input$BA-2*input$BB*maletemp[i]))*100000} maletemp[1]<-100000 for(i in 1:(length(male)-1)) {male[i]<-maletemp[i]-maletemp[i+1]} #male[length(male)]<-100000-sum(male[1:(length(male)-1)]) } } Placement1 <- max(c(female,female2,male,male2),na.rm=TRUE)*1.15 Placement2 <- input$XAxesMax if(input$percoh=="period" & MaxPause==0){ if(input$SetXAxes=="NO") {barplot(female[0:input$YAxisRange],horiz=T,names=cat[0:input$YAxisRange],space=0,las=2,axes=FALSE,xlim=c(Placement1,0),col=outline_color,border=outline_color) if(input$BA==0 & input$BB==1 & (input$CombineYEAR=="NO" | input$propYEAR_1==0 | (input$YEAR_1b==input$YEAR_1 & input$PauseQRange[1]==input$PauseQRange[2]))) {legend(Placement1*.85, input$YAxisRange, legend=c(input$YEAR_1,input$YEAR_2), col=c(outline_color,rgb(0,1,1,0)), pt.cex=2, pch=15, cex=1.5, bty ="n", y.intersp=1.25)} if(input$BA!=0 | input$BB!=1 | (input$CombineYEAR=="YES" & input$propYEAR_1!=0 & (input$YEAR_1b!=input$YEAR_1 | input$PauseQRange[1]!=input$PauseQRange[2]))) {legend(Placement1*.85, input$YAxisRange, legend=c(paste(c("Modified ",input$YEAR_1),collapse=""),input$YEAR_2), col=c(outline_color,rgb(0,1,1,0)), pt.cex=2, pch=15, cex=1.5, bty ="n", y.intersp=1.25)} legend(Placement1*.85, input$YAxisRange, legend=c("",""), col=c(outline_color, rgb(0,0,0)), pt.cex=2, pch=0, cex=1.5, bty ="n", y.intersp=1.25)} if(input$SetXAxes=="YES") {barplot(female[0:input$YAxisRange],horiz=T,names=cat[0:input$YAxisRange],space=0,las=2,axes=FALSE,xlim=c(Placement2,0),col=outline_color,border=outline_color) if(input$BA==0 & input$BB==1 & (input$CombineYEAR=="NO" | input$propYEAR_1==0 | (input$YEAR_1b==input$YEAR_1 & input$PauseQRange[1]==input$PauseQRange[2]))) {legend(Placement2*.85, input$YAxisRange, legend=c(input$YEAR_1,input$YEAR_2), col=c(outline_color,rgb(0,1,1,0)), pt.cex=2, pch=15, cex=1.5, bty ="n", y.intersp=1.25)} if(input$BA!=0 | input$BB!=1 | (input$CombineYEAR=="YES" & input$propYEAR_1!=0 & (input$YEAR_1b!=input$YEAR_1 | input$PauseQRange[1]!=input$PauseQRange[2]))) {legend(Placement2*.85, input$YAxisRange, legend=c(paste(c("Modified ",input$YEAR_1),collapse=""),input$YEAR_2), col=c(outline_color,rgb(0,1,1,0)), pt.cex=2, pch=15, cex=1.5, bty ="n", y.intersp=1.25)} #legend(Placement2*.85, input$YAxisRange, legend=c(input$YEAR_1,input$YEAR_2), col=c(outline_color,rgb(0,1,1,0)), pt.cex=2, pch=15, cex=1.5, bty ="n", y.intersp=1.25) legend(Placement2*.85, input$YAxisRange, legend=c("",""), col=c(outline_color, rgb(0,0,0)), pt.cex=2, pch=0, cex=1.5, bty ="n", y.intersp=1.25)} par(new=TRUE) if(input$SetXAxes=="NO") {barplot(female2[0:input$YAxisRange],horiz=T,names=F,cex.names=.8,space=0,las=2,axes=FALSE,xlim=c(Placement1,0),col=rgb(0,0,0,0)) mtext(side=1,line=0,adj=.75,text=expression("Female"),font=1,cex=1.5) mtext(side=1,line=5,adj=0,text=paste(c("Data source: Human Mortality Database, December 2021. Human Mortality Database web address: https://www.mortality.org/"),collapse=""),cex=1) } if(input$SetXAxes=="YES") {barplot(female2[0:input$YAxisRange],horiz=T,names=F,cex.names=.8,space=0,las=2,axes=FALSE,xlim=c(Placement2,0),col=rgb(0,0,0,0)) mtext(side=1,line=5,adj=.75,text=expression("Female"),font=1,cex=1.5) axis(side=1,cex.axis=1.1,las=2) mtext(side=1,line=8,adj=0,text=paste(c("Data source: Human Mortality Database, December 2021. Human Mortality Database web address: https://www.mortality.org/"),collapse=""),cex=1) } mtext(side=2,line=0,adj=1.5,at=input$YAxisRange+(input$YAxisRange)*.03,text="Age",font=1,cex=1,las=2) if(input$ltFunction=="lx") {mtext(side=2,line=0,adj=0,at=input$YAxisRange+(input$YAxisRange)*.05,text=expression(" Period Life Table Survivorship ("* l[x] *") by Sex, Italy"),cex=1.5,las=2)} if(input$ltFunction=="dx") {mtext(side=2,line=0,adj=0,at=input$YAxisRange+(input$YAxisRange)*.05,text=expression(" Period Life Table Deaths (" * ""[n] * d[x] *") by Sex, Italy"),cex=1.5,las=2)} if(input$SetXAxes=="NO") {barplot(male[0:input$YAxisRange],horiz=T,names=F,cex.names=.8,space=0,las=2,axes=FALSE,xlim=c(0,Placement1),col=outline_color,border=NA)} if(input$SetXAxes=="YES") {barplot(male[0:input$YAxisRange],horiz=T,names=F,cex.names=.8,space=0,las=2,axes=FALSE,xlim=c(0,Placement2),col=outline_color,border=NA)} par(new=TRUE) if(input$SetXAxes=="NO") {barplot(male2[0:input$YAxisRange],horiz=T,names=F,cex.names=.8,space=0,las=2,axes=FALSE,xlim=c(0,Placement1),col=rgb(0,0,0,0)) mtext(side=1,line=0,adj=.25,text=expression("Male"),font=1,cex=1.5)} if(input$SetXAxes=="YES") {barplot(male2[0:input$YAxisRange],horiz=T,names=F,cex.names=.8,space=0,las=2,axes=FALSE,xlim=c(0,Placement2),col=rgb(0,0,0,0)) mtext(side=1,line=5,adj=.25,text=expression("Male"),font=1,cex=1.5) axis(side=1,cex.axis=1.1,las=2)} } if(input$percoh=="cohort" & input$YEAR_1<1928 & input$YEAR_2<1928 & CombineCohortMax!=1 & MaxPause==0) { if(input$SetXAxes=="NO") {barplot(female[0:input$YAxisRange],horiz=T,names=cat[0:input$YAxisRange],space=0,las=2,axes=FALSE,xlim=c(Placement1,0),col=outline_color,border=outline_color) if(input$BA==0 & input$BB==1 & (input$CombineYEAR=="NO" | input$propYEAR_1==0 | (input$YEAR_1b==input$YEAR_1 & input$PauseQRange[1]==input$PauseQRange[2]))) {legend(Placement1*.85, input$YAxisRange, legend=c(paste(c(input$YEAR_1," (birth year)"),collapse=""),paste(c(input$YEAR_2," (birth year)"),collapse="")), col=c(outline_color,rgb(0,1,1,0)), pt.cex=2, pch=15, cex=1.5, bty ="n", y.intersp=1.25)} if(input$BA!=0 | input$BB!=1 | (input$CombineYEAR=="YES" & input$propYEAR_1!=0 & (input$YEAR_1b!=input$YEAR_1 | input$PauseQRange[1]!=input$PauseQRange[2]))) {legend(Placement1*.85, input$YAxisRange, legend=c(paste(c("Modified ",input$YEAR_1," (birth year)"),collapse=""),paste(c(input$YEAR_2," (birth year)"),collapse="")), col=c(outline_color,rgb(0,1,1,0)), pt.cex=2, pch=15, cex=1.5, bty ="n", y.intersp=1.25)} legend(Placement1*.85, input$YAxisRange, legend=c("",""), col=c(outline_color, rgb(0,0,0)), pt.cex=2, pch=0, cex=1.5, bty ="n", y.intersp=1.25)} if(input$SetXAxes=="YES") {barplot(female[0:input$YAxisRange],horiz=T,names=cat[0:input$YAxisRange],space=0,las=2,axes=FALSE,xlim=c(Placement2,0),col=outline_color,border=outline_color) if(input$BA==0 & input$BB==1 & (input$CombineYEAR=="NO" | input$propYEAR_1==0 | (input$YEAR_1b==input$YEAR_1 & input$PauseQRange[1]==input$PauseQRange[2]))) {legend(Placement2*.85, input$YAxisRange, legend=c(paste(c(input$YEAR_1," (birth year)"),collapse=""),paste(c(input$YEAR_2," (birth year)"),collapse="")), col=c(outline_color,rgb(0,1,1,0)), pt.cex=2, pch=15, cex=1.5, bty ="n", y.intersp=1.25)} if(input$BA!=0 | input$BB!=1 | (input$CombineYEAR=="YES" & input$propYEAR_1!=0 & (input$YEAR_1b!=input$YEAR_1 | input$PauseQRange[1]!=input$PauseQRange[2]))) {legend(Placement2*.85, input$YAxisRange, legend=c(paste(c("Modified ",input$YEAR_1," (birth year)"),collapse=""),paste(c(input$YEAR_2," (birth year)"),collapse="")), col=c(outline_color,rgb(0,1,1,0)), pt.cex=2, pch=15, cex=1.5, bty ="n", y.intersp=1.25)} #legend(Placement2*.85, input$YAxisRange, legend=c(input$YEAR_1,input$YEAR_2), col=c(outline_color,rgb(0,1,1,0)), pt.cex=2, pch=15, cex=1.5, bty ="n", y.intersp=1.25) legend(Placement2*.85, input$YAxisRange, legend=c("",""), col=c(outline_color, rgb(0,0,0)), pt.cex=2, pch=0, cex=1.5, bty ="n", y.intersp=1.25)} par(new=TRUE) if(input$SetXAxes=="NO") {barplot(female2[0:input$YAxisRange],horiz=T,names=F,cex.names=.8,space=0,las=2,axes=FALSE,xlim=c(Placement1,0),col=rgb(0,0,0,0)) mtext(side=1,line=0,adj=.75,text=expression("Female"),font=1,cex=1.5) mtext(side=1,line=5,adj=0,text=paste(c("Data source: Human Mortality Database, December 2021. Human Mortality Database web address: https://www.mortality.org/"),collapse=""),cex=1) } if(input$SetXAxes=="YES") {barplot(female2[0:input$YAxisRange],horiz=T,names=F,cex.names=.8,space=0,las=2,axes=FALSE,xlim=c(Placement2,0),col=rgb(0,0,0,0)) mtext(side=1,line=5,adj=.75,text=expression("Female"),font=1,cex=1.5) axis(side=1,cex.axis=1.1,las=2) mtext(side=1,line=8,adj=0,text=paste(c("Data source: Human Mortality Database, December 2021. Human Mortality Database web address: https://www.mortality.org/"),collapse=""),cex=1) } mtext(side=2,line=0,adj=1.5,at=input$YAxisRange+(input$YAxisRange)*.03,text="Age",font=1,cex=1,las=2) if(input$ltFunction=="lx") {mtext(side=2,line=0,adj=0,at=input$YAxisRange+(input$YAxisRange)*.05,text=expression(" Cohort Life Table Survivorship ("* l[x] *") by Sex, Italy"),cex=1.5,las=2)} if(input$ltFunction=="dx") {mtext(side=2,line=0,adj=0,at=input$YAxisRange+(input$YAxisRange)*.05,text=expression(" Cohort Life Table Deaths (" * ""[n] * d[x] *") by Sex, Italy"),cex=1.5,las=2)} if(input$SetXAxes=="NO") {barplot(male[0:input$YAxisRange],horiz=T,names=F,cex.names=.8,space=0,las=2,axes=FALSE,xlim=c(0,Placement1),col=outline_color,border=NA)} if(input$SetXAxes=="YES") {barplot(male[0:input$YAxisRange],horiz=T,names=F,cex.names=.8,space=0,las=2,axes=FALSE,xlim=c(0,Placement2),col=outline_color,border=NA)} par(new=TRUE) if(input$SetXAxes=="NO") {barplot(male2[0:input$YAxisRange],horiz=T,names=F,cex.names=.8,space=0,las=2,axes=FALSE,xlim=c(0,Placement1),col=rgb(0,0,0,0)) mtext(side=1,line=0,adj=.25,text=expression("Male"),font=1,cex=1.5)} if(input$SetXAxes=="YES") {barplot(male2[0:input$YAxisRange],horiz=T,names=F,cex.names=.8,space=0,las=2,axes=FALSE,xlim=c(0,Placement2),col=rgb(0,0,0,0)) mtext(side=1,line=5,adj=.25,text=expression("Male"),font=1,cex=1.5) axis(side=1,cex.axis=1.1,las=2)} } if(input$percoh=="cohort") {if(input$YEAR_1>1927 | input$YEAR_2>1927 | (input$CombineYEAR=="YES" & input$YEAR_1b>1927)) { plot.new() legend("topleft",legend=c("Latest year of cohort data is 1927"),cex=1.5,bty="n") }} if(MaxPause==1) {plot.new() legend("topleft",legend=c("Maximum freeze nqx start age is 105"),cex=1.5,bty="n") } ##### },height=1000,width=850) } # server shinyApp(ui = ui, server = server)