\documentclass[10pt]{article} \usepackage{longtable} % allows tables to break \usepackage[pdftex]{lscape} % allows tables to be landscaped %\usepackage[pdftex]{graphicx} \usepackage{pdfpages} \usepackage[letterpaper,margin=1in]{geometry} \usepackage{setspace,relsize} % needed for latex(describe()), \code \usepackage{moreverb} % for verbatimtabinput % \usepackage{tabularx} \usepackage{colortbl} \usepackage{placeins} %\usepackage[dotinlabels]{titletoc} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{fancyhdr} \usepackage{graphicx, subfigure} \usepackage{threeparttable} %\usepackage{vmargin} \usepackage{lscape} \usepackage{rotating} \usepackage{endnotes} \usepackage{color} \def\linkcol{blue} \usepackage[pdftex,bookmarks,pagebackref,pdfpagemode=UseOutlines, colorlinks,linkcolor=\linkcol ]{hyperref} %% Setting dummy variable to define what code to execute \def\printid{1} \usepackage{tabularx} % required in the preamble %\setpapersize{USletter} \begin{document} \SweaveOpts{concordance=TRUE} <>= rm(list=ls()) load("ccasanet-anna.Rda") load("vandy-anna.Rda") d<-rbind(d.ccasanet,d.vandy) d$year.enrol<-as.numeric(as.character(d$year.enrol)) d$site<-as.character(d$site) @ \title{\large Changing Faces Analysis} \date{\today} \maketitle \bigskip \noindent \textbf{Inclusion Criteria} Adults ($\geq$ 18 years) at enrollment. Enrollment in 1995 or later. Non-missing date of diagnosis which must be no more than 3 weeks after the date of HIV enrollment. \bigskip I am using the July 2013 dataset. \bigskip For CCASAnet, AIDS at enrollment is defined as evidence of AIDS no later than 30 days after enrollment. (We will have to ask Megan to get the exact definition for the VCCC data.) CD4 at enrollment is the measurement closest to enrollment but no more than 6 months before or after; this definition is identical for all sites. <>= make.ci<-function(x) { paste(round(x[1],2)," (",round(x[2],2),", ",round(x[3],2),")",sep="") } pretty.pval<-function(x) { ifelse(x<0.001,"<0.001", ifelse(x<0.08,as.character(round(x,3)),round(x,2))) } @ \clearpage <>= source("../gabriela/table_functions_forBryan.R") d$year.dx<-with(d,ifelse(age.dx<0,NA,year.dx)) d$age.dx<-with(d,ifelse(age.dx<0,NA,age.dx)) with(d,table(is.na(d$age.dx),site)) with(d,table(age.dx-age.enrol>21/365.25,site)) exclude<-ifelse(is.na(d$age.dx)|(d$age.dx-d$age.enrol>21/365.25),1,0) with(d,table(is.na(age.dx)|(age.dx-age.enrol>21/365.25),site)) table(exclude,d$site) exclude.tab<-with(d, getnptex(var=exclude,by=site,label="Included in analysis",rowlabel=c("included","excluded"),inc.pval=FALSE)) d<-d[exclude==0,] d$aids.enrol<-factor(d$aids.enrol,levels=c("AIDS","not AIDS","Unknown")) cd4.tab<-with(d, getmedtex(var=cd4.enrol,by=site,label="CD4 at Enrollment",inc.pval=FALSE,round.value=0,note="a")) age.enrol.tab<-with(d, getmedtex(var=age.enrol,by=site,label="Age at Enrollment", inc.pval=FALSE, round.value=0)) age.dx.tab<-with(d, getmedtex(var=age.dx,by=site,label="Age at Diagnosis", inc.pval=FALSE, round.value=0)) time.from.dx.tab<-with(d, getmedtex(var=age.enrol-age.dx,by=site,label="Years between Diagnosis and Enrollment", inc.pval=FALSE, round.value=1)) male.tab<-with(d,getnptex(var=male,by=site,label="Sex",rowlabel=c("female","male"),inc.pval=FALSE)) route.tab<-with(d,getnptex(var=mode,by=site,label="Probable Route of Infection", rowlabel=levels(factor(mode)),inc.pval=FALSE)) aids.tab<-with(d,getnptex(var=aids.enrol,by=site,label="Clinical Stage at Enrollment", rowlabel=levels(factor(aids.enrol)),inc.pval=FALSE)) table1<- paste(male.tab$line, age.enrol.tab$line, age.dx.tab$line.incmiss, time.from.dx.tab$line, route.tab$line, aids.tab$line, cd4.tab$line.incmiss, sep=" \\\\\\\\ \\\\\\\\ ") table.site<-table(d$site) @ \begin{center} \begin{sidewaystable} \begin{threeparttable} \caption{Numbers of patients excluded by site because missing date of HIV diagnosis, or date was $>$ 3 weeks after date of enrollment} \scriptsize{ \begin{tabular}{llllllllll} \hline & Argentina & Brazil & Chile & Haiti & Honduras & Mexico & Peru & VCCC & Combined \\ \hline \\ \Sexpr{exclude.tab} \\ \\ \hline \end{tabular} } \end{threeparttable} \end{sidewaystable} \end{center} \begin{center} \begin{sidewaystable} \begin{threeparttable} \caption{Summary of Patient Characteristics by Site} \scriptsize{ \begin{tabular}{llllllllll} \hline & Argentina & Brazil & Chile & Haiti & Honduras & Mexico & Peru & VCCC & Combined \\ & (n=\Sexpr{table.site[names(table.site)=="argentina"]}) & (n=\Sexpr{table.site[names(table.site)=="brazil"]}) & (n=\Sexpr{table.site[names(table.site)=="chile"]}) & (n=\Sexpr{table.site[names(table.site)=="haiti"]}) & (n=\Sexpr{table.site[names(table.site)=="honduras"]}) & (n=\Sexpr{table.site[names(table.site)=="mexico"]}) & (n=\Sexpr{table.site[names(table.site)=="peru"]}) & (n=\Sexpr{table.site[names(table.site)=="VCCC"]}) & (n=\Sexpr{length(d$site)}) \\ \hline \\ \Sexpr{table1} \\ \\ \hline \end{tabular} } \begin{tablenotes} \item[a] Continuous variables are reported as medians (interquartile range). \end{tablenotes} \end{threeparttable} \end{sidewaystable} \end{center} <>= d$cohort<-with(d,ifelse(d$site!="VCCC","CCASAnet","VCCC")) cd4.tab<-with(d, getmedtex(var=cd4.enrol,by=cohort,label="CD4 at Enrollment",inc.pval=FALSE,round.value=0,note="a")) age.enrol.tab<-with(d, getmedtex(var=age.enrol,by=cohort,label="Age at Enrollment", inc.pval=FALSE, round.value=0)) age.dx.tab<-with(d, getmedtex(var=age.dx,by=cohort,label="Age at Diagnosis", inc.pval=FALSE, round.value=0)) time.from.dx.tab<-with(d, getmedtex(var=age.enrol-age.dx,by=cohort,label="Years between Diagnosis and Enrollment", inc.pval=FALSE, round.value=1)) male.tab<-with(d,getnptex(var=male,by=cohort,label="Sex",rowlabel=c("female","male"),inc.pval=FALSE)) route.tab<-with(d,getnptex(var=mode,by=cohort,label="Probable Route of Infection", rowlabel=levels(factor(mode)),inc.pval=FALSE)) aids.tab<-with(d,getnptex(var=aids.enrol,by=cohort,label="Clinical Stage at Enrollment", rowlabel=levels(factor(aids.enrol)),inc.pval=FALSE)) table2<- paste(male.tab$line, age.enrol.tab$line, age.dx.tab$line.incmiss, time.from.dx.tab$line, route.tab$line, aids.tab$line, cd4.tab$line.incmiss, sep=" \\\\\\\\ \\\\\\\\ ") table.cohort<-table(d$cohort) @ \begin{center} \begin{sidewaystable} \begin{threeparttable} \caption{Summary of Patient Characteristics by Cohort} \scriptsize{ \begin{tabular}{llll} \hline & CCASAnet & VCCC & Combined \\ & (n=\Sexpr{table.cohort[names(table.cohort)=="CCASAnet"]}) & (n=\Sexpr{table.site[names(table.site)=="VCCC"]}) & (n=\Sexpr{length(d$site)}) \\ \hline \\ \Sexpr{table2} \\ \\ \hline \end{tabular} } \begin{tablenotes} \item[a] Continuous variables are reported as medians (interquartile range). \end{tablenotes} \end{threeparttable} \end{sidewaystable} \end{center} <>= d$cohort.25<-with(d,ifelse(d$site!="VCCC"& age.enrol<25,"CCASAnet < 25", ifelse(d$site!="VCCC"& age.enrol>=25,"CCASAnet >= 25", ifelse(d$site=="VCCC"& age.enrol<25,"VCCC < 25", "VCCC >= 25")))) cd4.tab<-with(d, getmedtex(var=cd4.enrol,by=cohort.25,label="CD4 at Enrollment",inc.pval=FALSE,round.value=0,note="a")) age.enrol.tab<-with(d, getmedtex(var=age.enrol,by=cohort.25,label="Age at Enrollment", inc.pval=FALSE, round.value=0)) age.dx.tab<-with(d, getmedtex(var=age.dx,by=cohort.25,label="Age at Diagnosis", inc.pval=FALSE, round.value=0)) time.from.dx.tab<-with(d, getmedtex(var=age.enrol-age.dx,by=cohort.25,label="Years between Diagnosis and Enrollment", inc.pval=FALSE, round.value=1)) male.tab<-with(d,getnptex(var=male,by=cohort.25,label="Sex",rowlabel=c("female","male"),inc.pval=FALSE)) route.tab<-with(d,getnptex(var=mode,by=cohort.25,label="Probable Route of Infection", rowlabel=levels(factor(mode)),inc.pval=FALSE)) aids.tab<-with(d,getnptex(var=aids.enrol,by=cohort.25,label="Clinical Stage at Enrollment", rowlabel=levels(factor(aids.enrol)),inc.pval=FALSE)) dm<-d[d$msm==1,] dm$cohort.25<-with(dm,ifelse(site!="VCCC"& age.enrol<25,"CCASAnet < 25", ifelse(site!="VCCC"& age.enrol>=25,"CCASAnet >= 25", ifelse(site=="VCCC"& age.enrol<25,"VCCC < 25", "VCCC >= 25")))) cd4.tab.m<-with(dm, getmedtex(var=cd4.enrol,by=cohort.25,label="CD4 at Enrollment",inc.pval=FALSE,round.value=0,note="a")) age.enrol.tab.m<-with(dm, getmedtex(var=age.enrol,by=cohort.25,label="Age at Enrollment", inc.pval=FALSE, round.value=0)) age.dx.tab.m<-with(dm, getmedtex(var=age.dx,by=cohort.25,label="Age at Diagnosis", inc.pval=FALSE, round.value=0)) time.from.dx.tab.m<-with(dm, getmedtex(var=age.enrol-age.dx,by=cohort.25,label="Years between Diagnosis and Enrollment", inc.pval=FALSE, round.value=1)) aids.tab.m<-with(dm,getnptex(var=aids.enrol,by=cohort.25,label="Clinical Stage at Enrollment", rowlabel=levels(factor(aids.enrol)),inc.pval=FALSE)) table3<- paste(male.tab$line, age.enrol.tab$line, age.dx.tab$line.incmiss, time.from.dx.tab$line, route.tab$line, aids.tab$line, cd4.tab$line.incmiss, sep=" \\\\\\\\ \\\\\\\\ ") table4<- paste(age.enrol.tab.m$line, age.dx.tab.m$line.incmiss, time.from.dx.tab.m$line, aids.tab.m$line, cd4.tab.m$line.incmiss, sep=" \\\\\\\\ \\\\\\\\ ") table.cohort.25<-table(d$cohort.25) table.cohort.25.m<-table(dm$cohort.25) @ \begin{center} \begin{sidewaystable} \begin{threeparttable} \caption{Descriptive baseline characteristics stratified by cohort and age at enrollment} \scriptsize{ \begin{tabular}{llllll} \hline & CCASAnet $<25$ & CCASAnet $\geq 25$ & VCCC $<25$ & VCCC $\geq 25$ & Combined \\ & (n=\Sexpr{table.cohort.25[names(table.cohort.25)=="CCASAnet < 25"]}) & (n=\Sexpr{table.cohort.25[names(table.cohort.25)=="CCASAnet >= 25"]}) & (n=\Sexpr{table.cohort.25[names(table.cohort.25)=="VCCC < 25"]}) & (n=\Sexpr{table.cohort.25[names(table.cohort.25)=="VCCC >= 25"]}) & (n=\Sexpr{length(d$site)}) \\ \hline \\ \Sexpr{table3} \\ \\ \hline \end{tabular} } \begin{tablenotes} \item[a] Continuous variables are reported as medians (interquartile range). \end{tablenotes} \end{threeparttable} \end{sidewaystable} \end{center} \begin{center} \begin{sidewaystable} \begin{threeparttable} \caption{Descriptive baseline characteristics among MSM stratified by cohort and age at enrollment} \scriptsize{ \begin{tabular}{llllll} \hline & CCASAnet $<25$ & CCASAnet $\geq 25$ & VCCC $<25$ & VCCC $\geq 25$ & Combined \\ & (n=\Sexpr{table.cohort.25.m[names(table.cohort.25.m)=="CCASAnet < 25"]}) & (n=\Sexpr{table.cohort.25.m[names(table.cohort.25.m)=="CCASAnet >= 25"]}) & (n=\Sexpr{table.cohort.25.m[names(table.cohort.25.m)=="VCCC < 25"]}) & (n=\Sexpr{table.cohort.25.m[names(table.cohort.25.m)=="VCCC >= 25"]}) & (n=\Sexpr{length(dm$site)}) \\ \hline \\ \Sexpr{table4} \\ \\ \hline \end{tabular} } \begin{tablenotes} \item[a] Continuous variables are reported as medians (interquartile range). \end{tablenotes} \end{threeparttable} \end{sidewaystable} \end{center} <>= dd<-d[!is.na(d$age.dx),] dd$cohort.25<-with(dd,ifelse(site!="VCCC"& age.dx<25,"CCASAnet < 25", ifelse(site!="VCCC"& age.dx>=25,"CCASAnet >= 25", ifelse(site=="VCCC"& age.dx<25,"VCCC < 25", "VCCC >= 25")))) cd4.tab<-with(dd, getmedtex(var=cd4.enrol,by=cohort.25,label="CD4 at Enrollment",inc.pval=FALSE,round.value=0,note="a")) age.enrol.tab<-with(dd, getmedtex(var=age.enrol,by=cohort.25,label="Age at Enrollment", inc.pval=FALSE, round.value=0)) age.dx.tab<-with(dd, getmedtex(var=age.dx,by=cohort.25,label="Age at Diagnosis", inc.pval=FALSE, round.value=0)) time.from.dx.tab<-with(dd, getmedtex(var=age.enrol-age.dx,by=cohort.25,label="Years between Diagnosis and Enrollment", inc.pval=FALSE, round.value=1)) male.tab<-with(dd,getnptex(var=male,by=cohort.25,label="Sex",rowlabel=c("female","male"),inc.pval=FALSE)) route.tab<-with(dd,getnptex(var=mode,by=cohort.25,label="Probable Route of Infection", rowlabel=levels(factor(mode)),inc.pval=FALSE)) aids.tab<-with(dd,getnptex(var=aids.enrol,by=cohort.25,label="Clinical Stage at Enrollment", rowlabel=levels(factor(aids.enrol)),inc.pval=FALSE)) cd4.pval.c<-pretty.pval(with(dd,kruskal.test(cd4.enrol~age.dx<25,subset=site!="VCCC")$p.value)) cd4.pval.v<-pretty.pval(with(dd,kruskal.test(cd4.enrol~age.dx<25,subset=site=="VCCC")$p.value)) timedx.pval.c<-pretty.pval(with(dd,kruskal.test((age.enrol-age.dx)~age.dx<25,subset=site!="VCCC")$p.value)) timedx.pval.v<-pretty.pval(with(dd,kruskal.test((age.enrol-age.dx)~age.dx<25,subset=site=="VCCC")$p.value)) male.pval.c<-pretty.pval(with(dd,chisq.test(table(male[site!="VCCC"],age.dx[site!="VCCC"]<25))$p.value)) male.pval.v<-pretty.pval(with(dd,chisq.test(table(male[site=="VCCC"],age.dx[site=="VCCC"]<25))$p.value)) aids.pval.c<-pretty.pval(with(dd,chisq.test(table(as.character(aids.enrol[site!="VCCC"&aids.enrol!="Unknown"]),age.dx[site!="VCCC"&aids.enrol!="Unknown"]<25))$p.value)) aids.pval.v<-pretty.pval(with(dd,chisq.test(table(as.character(aids.enrol[site=="VCCC"&aids.enrol!="Unknown"]),age.dx[site=="VCCC"&aids.enrol!="Unknown"]<25))$p.value)) ddm<-dd[dd$msm==1,] ddm$cohort.25<-with(ddm,ifelse(site!="VCCC"& age.dx<25,"CCASAnet < 25", ifelse(site!="VCCC"& age.dx>=25,"CCASAnet >= 25", ifelse(site=="VCCC"& age.dx<25,"VCCC < 25", "VCCC >= 25")))) cd4.tab.m<-with(ddm, getmedtex(var=cd4.enrol,by=cohort.25,label="CD4 at Enrollment",inc.pval=FALSE,round.value=0,note="a")) age.enrol.tab.m<-with(ddm, getmedtex(var=age.enrol,by=cohort.25,label="Age at Enrollment", inc.pval=FALSE, round.value=0)) age.dx.tab.m<-with(ddm, getmedtex(var=age.dx,by=cohort.25,label="Age at Diagnosis", inc.pval=FALSE, round.value=0)) time.from.dx.tab.m<-with(ddm, getmedtex(var=age.enrol-age.dx,by=cohort.25,label="Years between Diagnosis and Enrollment", inc.pval=FALSE, round.value=1)) aids.tab.m<-with(ddm,getnptex(var=aids.enrol,by=cohort.25,label="Clinical Stage at Enrollment", rowlabel=levels(factor(aids.enrol)),inc.pval=FALSE)) cd4.pval.cm<-pretty.pval(with(ddm,kruskal.test(cd4.enrol~age.dx<25,subset=site!="VCCC")$p.value)) cd4.pval.vm<-pretty.pval(with(ddm,kruskal.test(cd4.enrol~age.dx<25,subset=site=="VCCC")$p.value)) timedx.pval.cm<-pretty.pval(with(ddm,kruskal.test((age.enrol-age.dx)~age.dx<25,subset=site!="VCCC")$p.value)) timedx.pval.vm<-pretty.pval(with(ddm,kruskal.test((age.enrol-age.dx)~age.dx<25,subset=site=="VCCC")$p.value)) #### Some MSM are female. male.pval.cm<-pretty.pval(with(ddm,chisq.test(table(male[site!="VCCC"],age.dx[site!="VCCC"]<25))$p.value)) male.pval.vm<-pretty.pval(with(ddm,chisq.test(table(male[site=="VCCC"],age.dx[site=="VCCC"]<25))$p.value)) aids.pval.cm<-pretty.pval(with(ddm,chisq.test(table(as.character(aids.enrol[site!="VCCC"&aids.enrol!="Unknown"]),age.dx[site!="VCCC"&aids.enrol!="Unknown"]<25))$p.value)) aids.pval.vm<-pretty.pval(with(ddm,chisq.test(table(as.character(aids.enrol[site=="VCCC"&aids.enrol!="Unknown"]),age.dx[site=="VCCC"&aids.enrol!="Unknown"]<25))$p.value)) #### cd4.pval<-pretty.pval(with(dd,kruskal.test(cd4.enrol~site=="VCCC")$p.value)) timedx.pval<-pretty.pval(with(dd,kruskal.test((age.enrol-age.dx)~site=="VCCC")$p.value)) male.pval<-pretty.pval(with(dd,chisq.test(table(male,site=="VCCC"))$p.value)) aids.pval<-pretty.pval(with(dd,chisq.test(table(as.character(aids.enrol,site=="VCCC")))$p.value)) table5<- paste(male.tab$line, age.enrol.tab$line, age.dx.tab$line, time.from.dx.tab$line, route.tab$line, aids.tab$line, cd4.tab$line.incmiss, sep=" \\\\\\\\ \\\\\\\\ ") table6<- paste(age.enrol.tab.m$line, age.dx.tab.m$line, time.from.dx.tab.m$line, aids.tab.m$line, cd4.tab.m$line.incmiss, sep=" \\\\\\\\ \\\\\\\\ ") table.cohort.25<-table(dd$cohort.25) table.cohort.25.m<-table(ddm$cohort.25) @ \begin{center} \begin{sidewaystable} \begin{threeparttable} \caption{Descriptive baseline characteristics stratified by cohort and age at diagnosis} \scriptsize{ \begin{tabular}{llllllll} \hline & CCASAnet $<25$ & CCASAnet $\geq 25$ & VCCC $<25$ & VCCC $\geq 25$ & Combined \\ & (n=\Sexpr{table.cohort.25[names(table.cohort.25)=="CCASAnet < 25"]}) & (n=\Sexpr{table.cohort.25[names(table.cohort.25)=="CCASAnet >= 25"]}) & (n=\Sexpr{table.cohort.25[names(table.cohort.25)=="VCCC < 25"]}) & (n=\Sexpr{table.cohort.25[names(table.cohort.25)=="VCCC >= 25"]}) & (n=\Sexpr{length(dd$site)}) \\ \hline \\ \Sexpr{table5} \\ \\ \hline \end{tabular} } \begin{tablenotes} \item[a] Continuous variables are reported as medians (interquartile range). \end{tablenotes} \end{threeparttable} \end{sidewaystable} \end{center} \begin{center} \begin{sidewaystable} \begin{threeparttable} \caption{Descriptive baseline characteristics among MSM stratified by cohort and age at diagnosis} \scriptsize{ \begin{tabular}{llllll} \hline & CCASAnet $<25$ & CCASAnet $\geq 25$ & VCCC $<25$ & VCCC $\geq 25$ & Combined \\ & (n=\Sexpr{table.cohort.25.m[names(table.cohort.25.m)=="CCASAnet < 25"]}) & (n=\Sexpr{table.cohort.25.m[names(table.cohort.25.m)=="CCASAnet >= 25"]}) & (n=\Sexpr{table.cohort.25.m[names(table.cohort.25.m)=="VCCC < 25"]}) & (n=\Sexpr{table.cohort.25.m[names(table.cohort.25.m)=="VCCC >= 25"]}) & (n=\Sexpr{length(ddm$site)}) \\ \hline \\ \Sexpr{table6} \\ \\ \hline \end{tabular} } \begin{tablenotes} \item[a] Continuous variables are reported as medians (interquartile range). \end{tablenotes} \end{threeparttable} \end{sidewaystable} \end{center} \begin{center} \begin{sidewaystable} \begin{threeparttable} \caption{P-values comparing baseline characteristics by cohort} \scriptsize{ \begin{tabular}{ll} \hline & CCASAnet vs. VCCC \\ \hline \\ Sex & \Sexpr{male.pval} \\ AIDS & \Sexpr{aids.pval} \\ CD4 & \Sexpr{cd4.pval} \\ Time between Diagnosis and Enrollment & \Sexpr{timedx.pval.c} \\ \\ \hline \end{tabular} } \end{threeparttable} \end{sidewaystable} \end{center} \begin{center} \begin{sidewaystable} \begin{threeparttable} \caption{P-values comparing baseline characteristics by age at diagnosis within cohort} \scriptsize{ \begin{tabular}{lllll} \hline & CCASAnet & VCCC & CCASAnet MSM & VCCC MSM \\ \hline \\ Sex & \Sexpr{male.pval.c} & \Sexpr{male.pval.v} & -- & -- \\ AIDS & \Sexpr{aids.pval.c} & \Sexpr{aids.pval.v} & \Sexpr{aids.pval.cm} & \Sexpr{aids.pval.vm} \\ CD4 & \Sexpr{cd4.pval.c} & \Sexpr{cd4.pval.v} & \Sexpr{cd4.pval.cm} & \Sexpr{cd4.pval.vm} \\ Time between Diagnosis and Enrollment & \Sexpr{timedx.pval.c} & \Sexpr{timedx.pval.v} & \Sexpr{timedx.pval.cm} & \Sexpr{timedx.pval.vm} \\ \\ \hline \end{tabular} } \end{threeparttable} \end{sidewaystable} \end{center} <>= library(rms) pretty.pval<-function(p) { ifelse(p<0.001,"<0.001", ifelse(p<0.08,paste("=",as.character(round(p,3)),sep=""), paste("=",as.character(round(p,2)),sep=""))) } .simpleCap <- function(x) { s <- strsplit(x, " ")[[1]] paste(toupper(substring(s, 1,1)), substring(s, 2), sep="", collapse=" ") } plotstuff<-function(site,msm=FALSE,at.diagnosis=TRUE) { if (at.diagnosis==TRUE & msm==FALSE){ year.a<-dd$year.dx[dd$site==site] age.lt25.a<-ifelse(dd$age.dx<25,1,0)[dd$site==site] } if (at.diagnosis==FALSE & msm==FALSE){ year.a<-as.numeric(d$year.enrol[d$site==site]) age.lt25.a<-ifelse(d$age.enrol<25,1,0)[d$site==site] } if (at.diagnosis==TRUE & msm==TRUE){ year.a<-ddm$year.dx[ddm$site==site] age.lt25.a<-ifelse(ddm$age.dx<25,1,0)[ddm$site==site] } if (at.diagnosis==FALSE & msm==TRUE){ year.a<-dm$year.enrol[dm$site==site] age.lt25.a<-ifelse(dm$age.enrol<25,1,0)[dm$site==site] } year.splines.a<-ns(year.a, knots=quantile(year.a,c(.33,.66))) fit<-glm(age.lt25.a~year.splines.a,family="binomial") fit.null<-glm(age.lt25.a~1,family="binomial") pval.a<-1-pchisq(anova(fit.null,fit)$Deviance[2],anova(fit.null,fit)$Df[2]) fit.lin<-glm(age.lt25.a~year.a,family="binomial") pval.a1<-1-pchisq(anova(fit.lin,fit)$Deviance[2],anova(fit.lin,fit)$Df[2]) pval.a2<-1-pchisq(anova(fit.null,fit.lin)$Deviance[2],anova(fit.null,fit.lin)$Df[2]) pred<-predict(fit,se.fit=TRUE) years.plot<-sort(unique(year.a)) predicted<-se.fit<-NULL for (i in 1:length(years.plot)) { predicted[i]<-pred$fit[year.a==years.plot[i]][1] se.fit[i]<-pred$se.fit[year.a==years.plot[i]][1] } pred.u<-predicted+1.96*se.fit pred.l<-predicted-1.96*se.fit prob<-exp(predicted)/(1+exp(predicted)) prob.u<-exp(pred.u)/(1+exp(pred.u)) prob.l<-exp(pred.l)/(1+exp(pred.l)) # plot(c(years.plot,years.plot),c(prob.u,prob.l),type="n",ylab="Proportion Age < 25",xlab="Year of HIV Diagnosis",xlim=c(1995,2013),ylim=c(0,.6)) plot(c(years.plot,years.plot),c(prob.u,prob.l),type="n",ylab="Proportion Age < 25",xlab="Year of HIV Diagnosis",xlim=c(1995,2013),ylim=c(0,.6)) plot(c(years.plot,years.plot),c(prob.u,prob.l),type="n",ylab="",xlab="",xlim=c(1995,2013),ylim=c(0,.6)) mtext("Proportion Age < 25",side=2,line=2,cex=.7) if (at.diagnosis==TRUE) { mtext("Year of HIV Diagnosis",side=1,line=2,cex=.7) } if (at.diagnosis==FALSE) { mtext("Year of Enrollment",side=1,line=2,cex=.7) } lines(years.plot,prob) lines(years.plot,prob.u,lty=2) lines(years.plot,prob.l,lty=2) site1<-ifelse(site=="argentina","CMH-Argentina", ifelse(site=="brazil","FC-Brazil", ifelse(site=="chile","FA-Chile", ifelse(site=="haiti","GHESKIO-Haiti", ifelse(site=="honduras","IHSS/HE-Honduras", ifelse(site=="mexico","INCMNSZ-Mexico", ifelse(site=="peru","IMTAvH-Peru", ifelse(site=="VCCC","VCCC-USA","ERROR")))))))) if (msm==FALSE) {mtext(paste(site1," (n=",sum(!is.na(age.lt25.a)),")",sep=""),side=3,line=0.5,cex=.8)} if (msm==TRUE) {mtext(paste(site1," MSM (n=",sum(!is.na(age.lt25.a)),")",sep=""),side=3,line=0.5,cex=.8)} text(2011,0.58,paste("p",pretty.pval(pval.a),sep="")) # return(c(pval.a,pval.a1,pval.a2)) } # pdf("anna-ccasanet-fig2.pdf",height=15,width=5) # par(mfcol=c(8,2),mar=c(3.5,4,2.5,1)) pdf("anna-ccasanet-fig-dx.pdf",height=7.5,width=5) par(mfcol=c(4,2),mar=c(3.5,4,2.5,1)) plotstuff("argentina") plotstuff("brazil") plotstuff("chile") plotstuff("haiti") plotstuff("honduras") plotstuff("mexico") plotstuff("peru") plotstuff("VCCC") dev.off() pdf("anna-ccasanet-fig-dx-msm.pdf",height=7.5,width=5) par(mfcol=c(4,2),mar=c(3.5,4,2.5,1)) plotstuff("argentina",msm=TRUE) plotstuff("brazil",msm=TRUE) plotstuff("chile",msm=TRUE) plot(1,1,type="n",xlab="",ylab="",axes=FALSE) plotstuff("honduras",msm=TRUE) plotstuff("mexico",msm=TRUE) plotstuff("peru",msm=TRUE) plotstuff("VCCC",msm=TRUE) dev.off() pdf("anna-ccasanet-fig-enrol.pdf",height=7.5,width=5) par(mfcol=c(4,2),mar=c(3.5,4,2.5,1)) plotstuff("argentina",at.diagnosis=FALSE) plotstuff("brazil",at.diagnosis=FALSE) plotstuff("chile",at.diagnosis=FALSE) plotstuff("haiti",at.diagnosis=FALSE) plotstuff("honduras",at.diagnosis=FALSE) plotstuff("mexico",at.diagnosis=FALSE) plotstuff("peru",at.diagnosis=FALSE) plotstuff("VCCC",at.diagnosis=FALSE) dev.off() pdf("anna-ccasanet-fig-enrol-msm.pdf",height=7.5,width=5) par(mfcol=c(4,2),mar=c(3.5,4,2.5,1)) plotstuff("argentina",msm=TRUE,at.diagnosis=FALSE) plotstuff("brazil",msm=TRUE,at.diagnosis=FALSE) plotstuff("chile",msm=TRUE,at.diagnosis=FALSE) plot(1,1,type="n",xlab="",ylab="",axes=FALSE) plotstuff("honduras",msm=TRUE,at.diagnosis=FALSE) plotstuff("mexico",msm=TRUE,at.diagnosis=FALSE) plotstuff("peru",msm=TRUE,at.diagnosis=FALSE) plotstuff("VCCC",msm=TRUE,at.diagnosis=FALSE) dev.off() plotstuff.msm<-function(site,at.diagnosis=TRUE) { if (at.diagnosis==TRUE){ year.a<-dd$year.dx[dd$site==site] msm.a<-dd$msm[dd$site==site] } if (at.diagnosis==FALSE){ year.a<-as.numeric(d$year.enrol[d$site==site]) msm.a<-dd$msm[d$site==site] } year.splines.a<-ns(year.a, knots=quantile(year.a,c(.33,.66))) fit<-glm(msm.a~year.splines.a,family="binomial") fit.null<-glm(msm.a~1,family="binomial") pval.a<-1-pchisq(anova(fit.null,fit)$Deviance[2],anova(fit.null,fit)$Df[2]) fit.lin<-glm(msm.a~year.a,family="binomial") pval.a1<-1-pchisq(anova(fit.lin,fit)$Deviance[2],anova(fit.lin,fit)$Df[2]) pval.a2<-1-pchisq(anova(fit.null,fit.lin)$Deviance[2],anova(fit.null,fit.lin)$Df[2]) pred<-predict(fit,se.fit=TRUE) years.plot<-sort(unique(year.a)) predicted<-se.fit<-NULL for (i in 1:length(years.plot)) { predicted[i]<-pred$fit[year.a==years.plot[i]][1] se.fit[i]<-pred$se.fit[year.a==years.plot[i]][1] } pred.u<-predicted+1.96*se.fit pred.l<-predicted-1.96*se.fit prob<-exp(predicted)/(1+exp(predicted)) prob.u<-exp(pred.u)/(1+exp(pred.u)) prob.l<-exp(pred.l)/(1+exp(pred.l)) plot(c(years.plot,years.plot),c(prob.u,prob.l),type="n",ylab="",xlab="",xlim=c(1995,2013),ylim=c(0,1)) mtext("Proportion MSM",side=2,line=2,cex=.7) if (at.diagnosis==TRUE) { mtext("Year of HIV Diagnosis",side=1,line=2,cex=.7) } if (at.diagnosis==FALSE) { mtext("Year of Enrollment",side=1,line=2,cex=.7) } lines(years.plot,prob) lines(years.plot,prob.u,lty=2) lines(years.plot,prob.l,lty=2) text(2011,0.95,paste("p",pretty.pval(pval.a),sep="")) site1<-ifelse(site=="argentina","CMH-Argentina", ifelse(site=="brazil","FC-Brazil", ifelse(site=="chile","FA-Chile", ifelse(site=="haiti","GHESKIO-Haiti", ifelse(site=="honduras","IHSS/HE-Honduras", ifelse(site=="mexico","INCMNSZ-Mexico", ifelse(site=="peru","IMTAvH-Peru", ifelse(site=="VCCC","VCCC-USA","ERROR")))))))) mtext(paste(site1," (n=",sum(!is.na(msm.a)),")",sep=""),side=3,line=0.5,cex=.8) # return(c(pval.a,pval.a1,pval.a2)) } pdf("anna-ccasanet-proportion-msm-dx.pdf",height=7.5,width=5) par(mfcol=c(4,2),mar=c(3.5,4,2.5,1)) plotstuff.msm("argentina") plotstuff.msm("brazil") plotstuff.msm("chile") plot(1,1,type="n",xlab="",ylab="",axes=FALSE) #plotstuff.msm("haiti") plotstuff.msm("honduras") plotstuff.msm("mexico") plotstuff.msm("peru") plotstuff.msm("VCCC") dev.off() pdf("anna-ccasanet-proportion-msm-enrol.pdf",height=7.5,width=5) par(mfcol=c(4,2),mar=c(3.5,4,2.5,1)) plotstuff.msm("argentina",at.diagnosis=FALSE) plotstuff.msm("brazil",at.diagnosis=FALSE) plotstuff.msm("chile",at.diagnosis=FALSE) plot(1,1,type="n",xlab="",ylab="",axes=FALSE) #plotstuff.msm("haiti",at.diagnosis=FALSE) plotstuff.msm("honduras",at.diagnosis=FALSE) plotstuff.msm("mexico",at.diagnosis=FALSE) plotstuff.msm("peru",at.diagnosis=FALSE) plotstuff.msm("VCCC",at.diagnosis=FALSE) dev.off() @ \begin{figure} \caption{Trends in the proportion of patients $<25$ years of age at HIV diagnosis.} \begin{center} \includegraphics[width=5in, height=7.5in, angle=0]{anna-ccasanet-fig-dx.pdf} \end{center} \end{figure} \begin{figure} \caption{Trends in the proportion of patients $<25$ years of age at HIV diagnosis among MSM.} \begin{center} \includegraphics[width=5in, height=7.5in, angle=0]{anna-ccasanet-fig-dx-msm.pdf} \end{center} \end{figure} \begin{figure} \caption{Trends in the proportion of patients $<25$ years of age at enrollment.} \begin{center} \includegraphics[width=5in, height=7.5in, angle=0]{anna-ccasanet-fig-enrol.pdf} \end{center} \end{figure} \begin{figure} \caption{Trends in the proportion of patients $<25$ years of age at enrollment among MSM.} \begin{center} \includegraphics[width=5in, height=7.5in, angle=0]{anna-ccasanet-fig-enrol-msm.pdf} \end{center} \end{figure} \begin{figure} \caption{Trends in the proportion of MSM patients by year of diagnosis.} \begin{center} \includegraphics[width=5in, height=7.5in, angle=0]{anna-ccasanet-proportion-msm-dx.pdf} \end{center} \end{figure} \begin{figure} \caption{Trends in the proportion of MSM patients by year of enrollment.} \begin{center} \includegraphics[width=5in, height=7.5in, angle=0]{anna-ccasanet-proportion-msm-enrol.pdf} \end{center} \end{figure} \Sexpr{sum(dd$age.dx[dd$site!="VCCC"]<25)} (\Sexpr{round(mean(dd$age.dx[dd$site!="VCCC"]<25)*100)}\%) CCASAnet patients were $<25$ at HIV diagnosis and \Sexpr{sum(dd$age.dx[dd$site=="VCCC"]<25)} (\Sexpr{round(mean(dd$age.dx[dd$site=="VCCC"]<25)*100)}\%) VCCC patients were $<25$ at HIV diagnosis. \end{document}