library(readxl)
require(dplyr)
require(RcmdrMisc)
require(xlsx)
require(utils)
require(survival)
require(sjPlot)
#CMV_Compilado_Banco_Servlab <- read_excel("CMV_Compilado_Banco_Servlab.xlsx")
#Planilha_HBV_resumida_labels <- read_excel("Planilha_HBV_resumida_labels.xlsx")
#Planilha_HBV_resumida_numeric <- read_excel("Planilha_HBV_resumida_numeric.xlsx")
#banco <- read_excel("banco.xlsx")
#CMV_Compilado_Banco_Servlab<-distinct(CMV_Compilado_Banco_Servlab)
#CMV_Compilado_Banco_Servlab %>% arrange(id01a_regi)
#CMV_Compilado_Banco_Servlab %>% arrange(G04_DATA_EXA)
#a <- read_delim("a.csv", ";", escape_double = FALSE,  trim_ws = TRUE)
library(readxl)
require(readr)
require(dplyr)
library(readr)
luciane <- read_csv("luciane.csv")
banco_lu_update <- read_excel("banco_lu_update.xlsx")
banco_redu <- read_excel("banco_redu.xlsx", 
                         col_types = c("numeric", "numeric", "numeric", 
                                       "numeric", "numeric", "numeric", 
                                       "numeric", "text", "text", "text", 
                                       "text", "text", "text", "text", "text", 
                                       "numeric", "text", "text", "text", 
                                       "text", "text", "text", "text"))

banco3 <- read.csv("C:/Users/edson/Downloads/banco (3).csv", sep=";")
banco3<-subset(banco3, select=c(Registro, tempodias))
banco_redu<-subset(banco_redu,select=c(tempomeses, Cd4_Cd8, id01a_regi,idade2))
banco_lu_update<-subset(banco_lu_update,select=c(Registro, I110_DATA_INI.x.x, Grupo2))
banco_redu$Registro<-banco_redu$id01a_regi
banco_lu_update<-left_join(banco_lu_update, banco_redu)
E5_CD4_Carga_Viral_e_CD8 <- read_excel("C:/Users/edson/Downloads/mm.xlsx")
E5_CD4_Carga_Viral_e_CD8<-subset(E5_CD4_Carga_Viral_e_CD8, select=c(ID01A_REGI,DATA_CAR, E505_CD4 ))
E5_CD4_Carga_Viral_e_CD8$Registro <-E5_CD4_Carga_Viral_e_CD8$ID01A_REGI
E5_CD4_Carga_Viral_e_CD8<-na.omit(E5_CD4_Carga_Viral_e_CD8)
a<-left_join(banco_lu_update, E5_CD4_Carga_Viral_e_CD8,by="Registro")
a<-subset(a,a$Registro==a$id01a_regi)
a$tempocarini<-difftime(a$I110_DATA_INI.x.x,a$DATA_CAR,units = "days")
#a<-left_join(a, Planilha_HBV_resumida_numeric, by="id01a_regi")

#( as.Date(a$I110_DATA_INI.x) - as.Date(a$DATA_CAR.x))
#a <- read.csv("a.csv", header = T, sep=";")
a<-a %>% arrange(tempocarini, Registro)
a$tempocarini<-as.numeric(a$tempocarini)

a<-distinct(a,a$ID01A_REGI,.keep_all = T)

a<-left_join(banco_lu_update, a, by="Registro")
a$Grupo2<- a$Grupo2.x
a$grupo5<-"cronico sem exame proximo"
a$grupo5[a$tempocarini>90 & a$Grupo2=="Crônico"]<-"cronico sem exame proximo"
a$grupo5[a$tempocarini< (-90) & a$Grupo2=="Crônico"]<-"cronico sem exame proximo"
a$grupo5[a$E505_CD4>350 & a$Grupo2=="Crônico"]<-"cronico cd4 > 350"
a$grupo5[a$E505_CD4> 200 & a$E505_CD4<350 & a$Grupo2=="Crônico"]<- "cronico cd4 200 - 350"
a$grupo5[a$E505_CD4<200]<- "cronico cd4 < 200"
a$grupo5[a$Grupo2=="Agudo"]<-"Agudo"
a$grupo5[a$Grupo2=="Recente"]<- "Recente"
a$grupo6<-a$grupo5
a$grupo6<-a$grupo5[is.na(a$grupo5) & a$Grupo2=="Crônico"]<-"cronico sem exame proximo"
htmlTable::htmlTable(as.data.frame(table(a$grupo5)))
Var1 Freq
1 Agudo 65
2 cronico cd4 < 200 19
3 cronico cd4 > 350 287
4 cronico cd4 200 - 350 35
5 cronico sem exame proximo 164
6 Recente 35
a$relacaomaior1<-0
a$relacaomaior1[a$Cd4_Cd8>1]<-1
a$relacaomaior1<-as.factor(a$relacaomaior1)

g<-subset(a,select=c(grupo5,relacaomaior1))
edu::tabelarumbancoporumavarquali(g)
Characteristic 0, N = 6051
grupo5
Agudo 65 (10.74%)
cronico cd4 < 200 19 (3.14%)
cronico cd4 > 350 287 (47.44%)
cronico cd4 200 - 350 35 (5.79%)
cronico sem exame proximo 164 (27.11%)
Recente 35 (5.79%)

1 n (%)

banco_lu_update <- read_excel("banco_lu_update.xlsx")
d<-right_join(a, banco_lu_update, by="Registro")

a<-d

a$idade<-a$idade2
banco<-a

a$relacaomaior1<-0
a$relacaomaior1[a$Cd4_Cd8>1]<-1
banco$tcd4_relacao<-banco$tcd4
banco$tcd8_relacao<-banco$tcd8
banco$esc<-0
banco$esc[banco$escola2=="mais de 12 anos"]<-1

banco$cv<-stringr::str_replace(banco$cv,",",".")
banco$cv<-stringr::str_replace(banco$cv,"..",".")
banco$cv<-stringr::str_replace(banco$cv,".","0.")

banco$cv<-as.numeric(banco$cv)
banco$esc<-as.factor(banco$esc)


#banco<-subset(banco, banco$relacaomaior1.x==0 |banco$relacaomaior1.x==1 )
banco_redu<-subset(banco_redu,select=c(idade2,Registro,tempomeses))
banco_redu$idade3<-banco_redu$idade2
banco$Registro<-banco$id01a_regi.x.y
banco<-left_join(banco, banco_redu,by="Registro")
luciane <- read_csv("luciane.csv", col_types = cols(tempodias = col_number()))
luciane<-subset(luciane,select=c(Registro, tempodias))
modelo4<-read.csv("C:/Users/edson/Downloads/modelo4 (1).csv", sep=";",dec=",")
modelo4<-subset(modelo4,select=c(Registro, idade,gon,clam))
modelo4$idade4<-modelo4$idade
banco$Registro<-banco$id01a_regi.x.y
banco<-left_join(banco, modelo4,by="Registro")
banco$tempomeses<-banco$tempomeses.y
require(survival)

banco2<-subset(banco, select =c(grupo5, relacaomaior1.x,Grupo2.x.x ))

banco$cd4maior350<-0
banco$cd4maior350[banco$grupo5=="cronico cd4 > 350"]<-1
banco$cd4maior350<-as.factor(banco$cd4maior350)
banco$Registro<-banco$id01a_regi.x.y
require(readxl)
banco$CMV_pos_ARV<-as.factor(banco$CMV_pos_ARV)
banco$CMV_Bruto<-as.factor(banco$CMV_Bruto)

banco$relacaomaior1.x<-as.numeric(banco$relacaomaior1.y)

banco<-dplyr::left_join(banco,banco3, by="Registro")
banco$tempomeses.y.y<-banco$tempodias/30
banco$tempomeses.x<-banco$tempomeses.y.y
banco$tempomeses<-banco$tempomeses.y.y

#modelo de cox univariado
CoxModel.4 <- coxph(Surv(tempomeses.x, relacaomaior1.x) ~ COR,method="efron",id=Registro, data=banco)

CoxModel.5 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ GENERO, 
                    method="efron",id=Registro, data=banco)

CoxModel.6 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ idade4, 
                    method="efron",id=Registro, data=banco)

CoxModel.7 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ tempoaterarv, 
                    method="efron",id=Registro, data=banco)

CoxModel.8 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ esquema2, 
                    method="efron",id=Registro, data=banco)

CoxModel.9 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ hbv_cronico.x.x, 
                    method="efron",id=Registro, data=banco)

CoxModel.10 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ grupo5, 
                     method="efron",id=Registro, data=banco)


CoxModel.11 <- coxph(Surv(tempomeses,relacaomaior1.x) ~ G03_EXAM, 
                     method="efron",id=Registro, data=banco)

CoxModel.12 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ Grupo, 
                     method="efron",id=Registro, data=banco)

CoxModel.13 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ Grupo2.x.y, 
                     method="efron",id=Registro, data=banco)

CoxModel.14 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ CMV_pos_ARV, 
                     method="efron",id=Registro, data=banco)

CoxModel.15 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ grupo5, 
                     method="efron",id=Registro, data=banco)

CoxModel.16 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ esc, 
                     method="efron",id=Registro, data=banco)
CoxModel.17 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ clam, 
                     method="efron",id=Registro, data=banco)
CoxModel.18 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ sifilis, 
                     method="efron",id=Registro, data=banco)

CoxModel.19 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ CMV_Bruto, method="efron",id=Registro, data=banco)

CoxModel.20 <- coxph(Surv(tempomeses, relacaomaior1.x) ~ gon,   method="efron",id=Registro, data=banco)
require(sjPlot)
aa<-tab_model(CoxModel.4,show.intercept = F, show.obs = F, show.r2 = F)
b<-tab_model(CoxModel.5,show.intercept = F, show.obs = F, show.r2 = F)
c<-tab_model(CoxModel.6,show.intercept = F, show.obs = F, show.r2 = F)
d<-tab_model(CoxModel.7,show.intercept = F, show.obs = F, show.r2 = F)
e<-tab_model(CoxModel.8,show.intercept = F, show.obs = F, show.r2 = F)
g<-tab_model(CoxModel.9,show.intercept = F, show.obs = F, show.r2 = F)
h<-tab_model(CoxModel.10,show.intercept = F, show.obs = F, show.r2 = F)
i<-tab_model(CoxModel.11,show.intercept = F, show.obs = F, show.r2 = F)
j<-tab_model(CoxModel.12,show.intercept = F, show.obs = F, show.r2 = F)
k<-tab_model(CoxModel.13,show.intercept = F, show.obs = F, show.r2 = F)
l<-tab_model(CoxModel.14,show.intercept = F, show.obs = F, show.r2 = F)
m<-tab_model(CoxModel.15,show.intercept = F, show.obs = F, show.r2 = F)
n<-tab_model(CoxModel.16,show.intercept = F, show.obs = F, show.r2 = F)
o<-tab_model(CoxModel.17,show.intercept = F, show.obs = F, show.r2 = F)
p<-tab_model(CoxModel.18,show.intercept = F, show.obs = F, show.r2 = F)
q<-tab_model(CoxModel.19,show.intercept = F, show.obs = F, show.r2 = F)
r<-tab_model(CoxModel.20,show.intercept = F, show.obs = F, show.r2 = F)


f<-as.list(c(aa$page.content,b$page.content,c$page.content,d$page.content,e$page.content,g$page.content,h$page.content,i$page.content,j$page.content,k$page.content,l$page.content,m$page.content,n$page.content,o$page.content,p$page.content,q$page.content,r$page.content))
#lista<-c("Raça/Cor","Gênero","Idade em Anos Completos","Tempo até ARV", "Esquema","hbv_class","hbv_cronico","G03_EXAM.x", "Grupo 1", "Grupo2","esquema arv","Cor","Anos de Estudo", "sifilis","CMV","gonorréia")
#rawr::combine_table(f, caption="Modelos de Cox Univariados")
v<-as.list(f)
f<- htmlTable::htmlTable(v)

require(XML)
questions<-readHTMLTable(f, trim=T, as.data.frame=T, header=T)
data<-bind_rows(questions)
names(data)[c(1)] <- c("Variavel")
names(data)[c(2)] <- c("Estimates")
names(data)[c(3)]<- c("CI")
names(data)[c(4)]<- c("P")



data<-subset(data, data$Variavel!="Â")
data<-subset(data, data$Variavel!="Predictors")
data$CI<-stringr::str_replace(data$CI, "â€","-")
data$CI<-stringr::str_replace(data$CI, "“Â","-")
data$CI<-stringr::str_replace(data$CI, "Â -","")
data$CI<-stringr::str_replace(data$CI, "Â","")
data$CI<-stringr::str_replace(data$CI, "--","-")
data$CI<-stringr::str_replace(data$CI, "Â","")

htmlTable::htmlTable(data)
Variavel Estimates CI P
3 COR [Pardo/Negro] 1.29 0.93 - 1.77 0.122
6 GENERO [MASCULINO] 1.10 0.78 - 1.55 0.580
9 idade4 0.98 0.96 - 1.00 0.021
12 tempoaterarv 1.00 1.00 - 1.00 0.261
15 esquema2 [IP] 0.97 0.61 - 1.53 0.880
16 esquema2 [NNRTI] 0.88 0.64 - 1.22 0.456
19 hbv_cronico.x.x [não] 1.67 0.68 - 4.06 0.260
20 hbv_cronico.x.x [sim] 1.07 0.21 - 5.53 0.936
23 grupo5 [cronico cd4 200] 0.00 0.00 - Inf 0.991
24 grupo5 [cronico cd4 >350] 0.27 0.19 - 0.38 <0.001
25 grupo5 [cronico cd4 200 -350] 0.04 0.01 - 0.15 <0.001
26 grupo5 [cronico sem exameproximo] 0.00 0.00 - Inf 0.998
27 grupo5 [Recente] 0.78 0.47 - 1.29 0.336
30 G03_EXAM [TR_DPP_SIFILIS] 0.98 0.24 - 3.96 0.974
33 Grupo [I] 63.89 22.99 - 177.58 <0.001
34 Grupo [II] 14.44 4.53 - 46.08 <0.001
35 Grupo [III] 12.51 5.69 - 27.52 <0.001
36 Grupo [IV] 3.65 1.84 - 7.26 <0.001
37 Grupo [V] 3.13 2.00 - 4.92 <0.001
38 Grupo [VI] 3.40 2.15 - 5.37 <0.001
41 Grupo2.x.y [Crônico] 0.23 0.16 - 0.33 <0.001
42 Grupo2.x.y [Recente] 0.78 0.47 - 1.29 0.331
45 CMV_pos_ARV [1] 0.10 0.02 - 0.48 0.004
48 grupo5 [cronico cd4 200] 0.00 0.00 - Inf 0.991
49 grupo5 [cronico cd4 >350] 0.27 0.19 - 0.38 <0.001
50 grupo5 [cronico cd4 200 -350] 0.04 0.01 - 0.15 <0.001
51 grupo5 [cronico sem exameproximo] 0.00 0.00 - Inf 0.998
52 grupo5 [Recente] 0.78 0.47 - 1.29 0.336
55 esc [1] 1.12 0.79 - 1.57 0.527
58 clam [Sim] 1.10 0.48 - 2.51 0.817
61 sifilis [Sim] 1.15 0.78 - 1.68 0.490
64 CMV_Bruto [1] 0.86 0.35 - 2.11 0.739
67 gon [Sim] 1.57 0.72 - 3.44 0.256
69 COR [Pardo/Negro] 1.29 0.93 - 1.77 0.122
71 GENERO [MASCULINO] 1.10 0.78 - 1.55 0.580
73 idade4 0.98 0.96 - 1.00 0.021
75 tempoaterarv 1.00 1.00 - 1.00 0.261
77 esquema2 [IP] 0.97 0.61 - 1.53 0.880
78 esquema2 [NNRTI] 0.88 0.64 - 1.22 0.456
80 hbv_cronico.x.x [não] 1.67 0.68 - 4.06 0.260
81 hbv_cronico.x.x [sim] 1.07 0.21 - 5.53 0.936
83 grupo5 [cronico cd4 200] 0.00 0.00 - Inf 0.991
84 grupo5 [cronico cd4 >350] 0.27 0.19 - 0.38 <0.001
85 grupo5 [cronico cd4 200 -350] 0.04 0.01 - 0.15 <0.001
86 grupo5 [cronico sem exameproximo] 0.00 0.00 - Inf 0.998
87 grupo5 [Recente] 0.78 0.47 - 1.29 0.336
89 G03_EXAM [TR_DPP_SIFILIS] 0.98 0.24 - 3.96 0.974
91 Grupo [I] 63.89 22.99 - 177.58 <0.001
92 Grupo [II] 14.44 4.53 - 46.08 <0.001
93 Grupo [III] 12.51 5.69 - 27.52 <0.001
94 Grupo [IV] 3.65 1.84 - 7.26 <0.001
95 Grupo [V] 3.13 2.00 - 4.92 <0.001
96 Grupo [VI] 3.40 2.15 - 5.37 <0.001
98 Grupo2.x.y [Crônico] 0.23 0.16 - 0.33 <0.001
99 Grupo2.x.y [Recente] 0.78 0.47 - 1.29 0.331
101 CMV_pos_ARV [1] 0.10 0.02 - 0.48 0.004
103 grupo5 [cronico cd4 200] 0.00 0.00 - Inf 0.991
104 grupo5 [cronico cd4 >350] 0.27 0.19 - 0.38 <0.001
105 grupo5 [cronico cd4 200 -350] 0.04 0.01 - 0.15 <0.001
106 grupo5 [cronico sem exameproximo] 0.00 0.00 - Inf 0.998
107 grupo5 [Recente] 0.78 0.47 - 1.29 0.336
109 esc [1] 1.12 0.79 - 1.57 0.527
111 clam [Sim] 1.10 0.48 - 2.51 0.817
113 sifilis [Sim] 1.15 0.78 - 1.68 0.490
115 CMV_Bruto [1] 0.86 0.35 - 2.11 0.739
117 gon [Sim] 1.57 0.72 - 3.44 0.256
#multi
multi<-coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ grupo5 + idade4 , id=Registro,data = banco, method = "efron")

sjPlot::tab_model(multi)
  Surv(tempomeses,
relacaomaior1.x)
Predictors Estimates CI p
grupo5 [cronico cd4 <
200]
0.00 0.00 – Inf 0.991
grupo5 [cronico cd4 >
350]
0.26 0.19 – 0.37 <0.001
grupo5 [cronico cd4 200 -
350]
0.04 0.01 – 0.17 <0.001
grupo5 [cronico sem exame
proximo]
0.00 0.00 – Inf 0.998
grupo5 [Recente] 0.78 0.47 – 1.30 0.340
idade4 0.98 0.96 – 1.00 0.058
Observations 434
R2 Nagelkerke 0.404
banco$cd4maior350<-as.factor(banco$cd4maior350)
multi<-coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ cd4maior350 + idade4 , id=Registro,data = banco, method = "efron")

sjPlot::tab_model(multi)
  Surv(tempomeses,
relacaomaior1.x)
Predictors Estimates CI p
cd4maior350 [1] 0.52 0.39 – 0.71 <0.001
idade4 0.97 0.95 – 0.99 0.003
Observations 434
R2 Nagelkerke 0.112
banco$agudo<-0
banco$agudo[banco$Grupo2.x.x=="Agudo"]<-1
banco$recente<-0
banco$recente[banco$Grupo2.x.x=="Recente"]<-1
banco$agudo<-as.factor(banco$agudo)
banco$recente<-as.factor(banco$recente)

banco$idade5<-0
banco$idade5[banco$idade4> 27]<-1
banco$idade5<-as.factor(banco$idade5)

multi<-coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ agudo +recente +  cd4maior350 +idade5, id=Registro,data = banco, method = "efron")

sjPlot::tab_model(multi)
  Surv(tempomeses,
relacaomaior1.x)
Predictors Estimates CI p
agudo [1] 35.98 8.73 – 148.32 <0.001
recente [1] 27.44 6.44 – 116.82 <0.001
cd4maior350 [1] 9.34 2.30 – 37.85 0.002
idade5 [1] 0.72 0.54 – 0.96 0.026
Observations 434
R2 Nagelkerke 0.404
multi<-coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ agudo +recente +  cd4maior350 +COR, id=Registro,data = banco, method = "efron")

sjPlot::tab_model(multi)
  Surv(tempomeses,
relacaomaior1.x)
Predictors Estimates CI p
agudo [1] 36.93 8.96 – 152.23 <0.001
recente [1] 29.83 7.00 – 127.05 <0.001
cd4maior350 [1] 9.90 2.45 – 40.09 0.001
COR [Pardo/Negro] 1.42 1.03 – 1.95 0.034
Observations 430
R2 Nagelkerke 0.399
multi<-coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ agudo +recente +  cd4maior350 +COR +idade5, id=Registro,data = banco, method = "efron")

sjPlot::tab_model(multi)
  Surv(tempomeses,
relacaomaior1.x)
Predictors Estimates CI p
agudo [1] 35.92 8.71 – 148.10 <0.001
recente [1] 28.24 6.62 – 120.41 <0.001
cd4maior350 [1] 9.29 2.29 – 37.64 0.002
COR [Pardo/Negro] 1.39 1.01 – 1.91 0.046
idade5 [1] 0.73 0.54 – 0.97 0.031
Observations 430
R2 Nagelkerke 0.413
multi<-coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ agudo +recente +  cd4maior350 +COR +idade5 , id=Registro,data = banco, method = "efron")

sjPlot::tab_model(multi)
  Surv(tempomeses,
relacaomaior1.x)
Predictors Estimates CI p
agudo [1] 35.92 8.71 – 148.10 <0.001
recente [1] 28.24 6.62 – 120.41 <0.001
cd4maior350 [1] 9.29 2.29 – 37.64 0.002
COR [Pardo/Negro] 1.39 1.01 – 1.91 0.046
idade5 [1] 0.73 0.54 – 0.97 0.031
Observations 430
R2 Nagelkerke 0.413
multi<-coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ agudo +recente +  cd4maior350 +COR +idade +CMV_pos_ARV, id=Registro,data = banco, method = "efron")

sjPlot::tab_model(multi)
  Surv(tempomeses,
relacaomaior1.x)
Predictors Estimates CI p
agudo [1] 25.45 3.21 – 201.84 0.002
recente [1] 18.60 2.32 – 148.83 0.006
cd4maior350 [1] 8.03 1.10 – 58.76 0.040
COR [Pardo/Negro] 2.48 1.34 – 4.60 0.004
idade 0.96 0.92 – 1.00 0.051
CMV_pos_ARV [1] 0.10 0.02 – 0.52 0.006
Observations 127
R2 Nagelkerke 0.475
htmlTable::htmlTable(as.data.frame(table(banco$cd4maior350, banco$relacaomaior1.x)))
Var1 Var2 Freq
1 0 0 76
2 1 0 171
3 0 1 71
4 1 1 116
#164 sem exame próximo grupo 5 e grupo 6

#kaplan meyer

#TableStack

#CV E503_NUME antes do data_INI até 14 dias depois data INI

E5_CD4_Carga_Viral_e_CD8<-read.delim("C:/Users/edson/Downloads/E5_Final-08-08-2021.txt")

E5_CD4_Carga_Viral_e_CD8$Registro<-E5_CD4_Carga_Viral_e_CD8$ID01A_REGI
f<-merge(E5_CD4_Carga_Viral_e_CD8,banco, by="Registro" )

f$tempocv<-difftime(as.Date(f$DATA_CAR),as.Date(f$I110_DATA_INI.x.x),units = "days")
f$tempocvvalido<-0
f$tempocvvalido[f$tempocv<7]<-1

f<-subset(f,f$tempocvvalido>0)
f<-subset(f,select = c(Registro, E503_NUME.x, tempocv))
f<-na.omit(f)
f$tempocv<-f$tempocv * -1

f<-f %>% arrange(f$tempocv, f$Registro)

f$cargaviral<-f$E503_NUME.x

f$cargaviral<-f$E503_NUME.x
f<-distinct(f,f$Registro,.keep_all = T)
f$tempocv<-f$tempocv * -1

banco<-left_join(banco, f, by="Registro")


banco$grupo5[banco$grupo5=="cronico sem exame proximo"]<-NA
h<-subset(banco,select=c(tcd4,tcd8,relacaomaior1.x, Cd4_Cd8.x, tempomeses, FIBIG2, grupo5,idade4,idade5, tempoaterarv, esc, COR, GENERO, gon, clam,sifilis,cargaviral,CMV_pos_ARV))
h<-as.data.frame(h)
h$grupo6<-NA
h$grupo6[banco$grupo5=="Recente"]<-"recente"
h$grupo6[banco$grupo5=="cronico cd4 > 350"]<-"cronico cd4 > 350"
h$grupo6[banco$grupo5=="cronico cd4 < 200"]<-"cronico cd4 <= 350"
h$grupo6[banco$grupo5=="cronico cd4 200 - 350"]<-"cronico cd4 <= 350"
htmlTable::htmlTable(epiDisplay::tableStack(c(CMV_pos_ARV,tcd4,tcd8,relacaomaior1.x, Cd4_Cd8.x, tempomeses, FIBIG2,idade4,idade5, tempoaterarv, esc, COR, GENERO, gon, clam,sifilis,cargaviral), by=grupo5, dataFrame=h, simulate.p.value = T, percent = "row",  var.labels = F))
Agudo cronico cd4 < 200 cronico cd4 > 350 cronico cd4 200 - 350 Recente Test stat. P value
Total 65 19 287 35 35
18 : CMV_pos_ARV Fisher’s exact test 0.382
0 1 (20) 1 (20) 3 (60) 0 (0) 0 (0)
1 19 (14.7) 5 (3.9) 74 (57.4) 12 (9.3) 19 (14.7)
1 : tcd4 Kruskal-Wallis test < 0.001
median(IQR) 794 (584.5,960.5) 126 (84.5,157) 704 (533.5,902.5) 266 (235,319) 746 (582,905)
2 : tcd8 Kruskal-Wallis test < 0.001
median(IQR) 691 (554.5,940.5) 896 (615,977.5) 914 (700.5,1195) 841 (626,1186) 761 (559,852)
3 : relacaomaior1.x Kruskal-Wallis test < 0.001
median(IQR) 1 (0.5,1) 0 (0,0) 0 (0,1) 0 (0,0) 1 (1,1)
4 : Cd4_Cd8.x Kruskal-Wallis test < 0.001
median(IQR) 1.1 (1,1.3) 0.1 (0.1,0.2) 0.9 (0.6,1.1) 0.3 (0.2,0.4) 1.1 (1,1.3)
5 : tempomeses Kruskal-Wallis test < 0.001
median(IQR) 3 (0.9,6) 6.2 (2.7,9.1) 10.8 (3.3,23.2) 11.9 (5.8,25) 3 (1.1,12)
6 : FIBIG2 Fisher’s exact test < 0.001
Chronic 0 (0) 19 (5.6) 287 (84.2) 35 (10.3) 0 (0)
I 5 (100) 0 (0) 0 (0) 0 (0) 0 (0)
II 3 (100) 0 (0) 0 (0) 0 (0) 0 (0)
III 10 (100) 0 (0) 0 (0) 0 (0) 0 (0)
IV 13 (100) 0 (0) 0 (0) 0 (0) 0 (0)
V 34 (100) 0 (0) 0 (0) 0 (0) 0 (0)
VI 0 (0) 0 (0) 0 (0) 0 (0) 35 (100)
8 : idade4 Kruskal-Wallis test < 0.001
median(IQR) 27.2 (23.9,32.8) 34.1 (28,42.9) 25.9 (22.9,32.2) 31 (26.3,40.8) 27.7 (26,32.7)
9 : idade5 Chisq. (4 df) = 13.78 0.008
0 32 (14.3) 4 (1.8) 160 (71.4) 12 (5.4) 16 (7.1)
1 33 (15.2) 15 (6.9) 127 (58.5) 23 (10.6) 19 (8.8)
10 : tempoaterarv Kruskal-Wallis test < 0.001
median(IQR) 3 (2,16) 85 (46,262) 42 (16,87.5) 38 (16.5,59.5) 15 (6.5,46)
11 : esc Chisq. (4 df) = 31.21 < 0.001
0 44 (12.6) 16 (4.6) 241 (69.1) 31 (8.9) 17 (4.9)
1 21 (22.8) 3 (3.3) 46 (50) 4 (4.3) 18 (19.6)
12 : COR Chisq. (4 df) = 4.25 0.373
Branca 27 (19.7) 5 (3.6) 83 (60.6) 10 (7.3) 12 (8.8)
Pardo/Negro 38 (12.7) 14 (4.7) 201 (67.2) 24 (8) 22 (7.4)
13 : GENERO Chisq. (4 df) = 9.86 0.043
FEMININO 10 (10) 5 (5) 73 (73) 10 (10) 2 (2)
MASCULINO 55 (16.2) 14 (4.1) 213 (62.6) 25 (7.4) 33 (9.7)
14 : gon Fisher’s exact test 0.26
Não 12 (20.7) 1 (1.7) 41 (70.7) 4 (6.9) 0 (0)
Sim 5 (33.3) 0 (0) 8 (53.3) 1 (6.7) 1 (6.7)
15 : clam Fisher’s exact test 1
Não 13 (23.6) 1 (1.8) 36 (65.5) 4 (7.3) 1 (1.8)
Sim 4 (22.2) 0 (0) 13 (72.2) 1 (5.6) 0 (0)
16 : sifilis Chisq. (4 df) = 4.06 0.398
Não 46 (19.6) 7 (3) 142 (60.4) 19 (8.1) 21 (8.9)
Sim 10 (12.8) 4 (5.1) 54 (69.2) 6 (7.7) 4 (5.1)
17 : cargaviral Kruskal-Wallis test 0.011
median(IQR) 0 (0,39) 117 (39,122) 0 (0,39) 39 (39,564.5) 0 (0,39)
h$grupo6<-NA
h$grupo6[banco$grupo5=="Recente"]<-"recente"
h$grupo6[banco$grupo5=="Agudo"]<-"agudo"

h$grupo6[banco$grupo5=="cronico cd4 > 350"]<-"cronico cd4 > 350"
h$grupo6[banco$grupo5=="cronico cd4 < 200"]<-"cronico cd4 <= 350"
h$grupo6[banco$grupo5=="cronico cd4 200 - 350"]<-"cronico cd4 <= 350"

table(h$FIBIG2, h$grupo6)
##          
##           agudo cronico cd4 <= 350 cronico cd4 > 350 recente
##   Chronic     0                 54               287       0
##   I           5                  0                 0       0
##   II          3                  0                 0       0
##   III        10                  0                 0       0
##   IV         13                  0                 0       0
##   V          34                  0                 0       0
##   VI          0                  0                 0      35
htmlTable::htmlTable(epiDisplay::tableStack(c(CMV_pos_ARV,tcd4,tcd8,relacaomaior1.x, Cd4_Cd8.x, tempomeses, idade4,idade5, tempoaterarv, esc, COR, GENERO, gon, clam,sifilis,cargaviral), by=grupo6, dataFrame=h, simulate.p.value = T, percent = "row",  var.labels = F))
agudo cronico cd4 <= 350 cronico cd4 > 350 recente Test stat. P value
Total 65 54 287 35
18 : CMV_pos_ARV Fisher’s exact test 0.842
0 1 (20) 1 (20) 3 (60) 0 (0)
1 19 (14.7) 17 (13.2) 74 (57.4) 19 (14.7)
1 : tcd4 Kruskal-Wallis test < 0.001
median(IQR) 794 (584.5,960.5) 231.5 (155,281.5) 704 (533.5,902.5) 746 (582,905)
2 : tcd8 Kruskal-Wallis test < 0.001
median(IQR) 691 (554.5,940.5) 873 (618.5,1154.8) 914 (700.5,1195) 761 (559,852)
3 : relacaomaior1.x Kruskal-Wallis test < 0.001
median(IQR) 1 (0.5,1) 0 (0,0) 0 (0,1) 1 (1,1)
4 : Cd4_Cd8.x Kruskal-Wallis test < 0.001
median(IQR) 1.1 (1,1.3) 0.2 (0.1,0.3) 0.9 (0.6,1.1) 1.1 (1,1.3)
5 : tempomeses Kruskal-Wallis test < 0.001
median(IQR) 3 (0.9,6) 8.7 (4.7,19.5) 10.8 (3.3,23.2) 3 (1.1,12)
8 : idade4 Kruskal-Wallis test < 0.001
median(IQR) 27.2 (23.9,32.8) 31.8 (26.8,42) 25.9 (22.9,32.2) 27.7 (26,32.7)
9 : idade5 Chisq. (3 df) = 12.92 0.005
0 32 (14.3) 16 (7.1) 160 (71.4) 16 (7.1)
1 33 (15.2) 38 (17.5) 127 (58.5) 19 (8.8)
10 : tempoaterarv Kruskal-Wallis test < 0.001
median(IQR) 3 (2,16) 48 (27.2,130) 42 (16,87.5) 15 (6.5,46)
11 : esc Chisq. (3 df) = 31.07 < 0.001
0 44 (12.6) 47 (13.5) 241 (69.1) 17 (4.9)
1 21 (22.8) 7 (7.6) 46 (50) 18 (19.6)
12 : COR Chisq. (3 df) = 4.2 0.241
Branca 27 (19.7) 15 (10.9) 83 (60.6) 12 (8.8)
Pardo/Negro 38 (12.7) 38 (12.7) 201 (67.2) 22 (7.4)
13 : GENERO Chisq. (3 df) = 9.82 0.02
FEMININO 10 (10) 15 (15) 73 (73) 2 (2)
MASCULINO 55 (16.2) 39 (11.5) 213 (62.6) 33 (9.7)
14 : gon Fisher’s exact test 0.168
Não 12 (20.7) 5 (8.6) 41 (70.7) 0 (0)
Sim 5 (33.3) 1 (6.7) 8 (53.3) 1 (6.7)
15 : clam Fisher’s exact test 1
Não 13 (23.6) 5 (9.1) 36 (65.5) 1 (1.8)
Sim 4 (22.2) 1 (5.6) 13 (72.2) 0 (0)
16 : sifilis Chisq. (3 df) = 3.44 0.329
Não 46 (19.6) 26 (11.1) 142 (60.4) 21 (8.9)
Sim 10 (12.8) 10 (12.8) 54 (69.2) 4 (5.1)
17 : cargaviral Kruskal-Wallis test 0.005
median(IQR) 0 (0,39) 39 (39,430) 0 (0,39) 0 (0,39)
.Survfit <- survfit(Surv(tempomeses, relacaomaior1.x) ~ grupo6, 
  conf.type="log", conf.int=0.95, type="kaplan-meier", error="greenwood", 
  data=h)
.Survfit
## Call: survfit(formula = Surv(tempomeses, relacaomaior1.x) ~ grupo6, 
##     data = h, error = "greenwood", conf.type = "log", conf.int = 0.95, 
##     type = "kaplan-meier")
## 
##    172 observations deleted due to missingness 
##                             n events median 0.95LCL 0.95UCL
## grupo6=agudo               63     47   3.63    1.17    10.4
## grupo6=cronico cd4 <= 350  54      2     NA      NA      NA
## grupo6=cronico cd4 > 350  287    116  27.30   22.90    36.0
## grupo6=recente             29     22   6.00    2.03    22.0
plot(.Survfit, col=1:4, lty=1:4, mark.time=TRUE)
legend("bottomleft", legend=c("grupo6=agudo","grupo6=cronico cd4 <= 350",
  "grupo6=cronico cd4 > 350","grupo6=recente"), col=1:4, lty=1:4, bty="n")

quantile(.Survfit, quantiles=c(.25,.5,.75))
## $quantile
##                                   25        50       75
## grupo6=agudo               0.8333333  3.633333 16.80000
## grupo6=cronico cd4 <= 350         NA        NA       NA
## grupo6=cronico cd4 > 350  10.5666667 27.300000 54.56667
## grupo6=recente             1.4333333  6.000000 22.00000
## 
## $lower
##                                  25        50       75
## grupo6=agudo              0.1000000  1.166667  6.00000
## grupo6=cronico cd4 <= 350        NA        NA       NA
## grupo6=cronico cd4 > 350  6.4000000 22.900000 45.03333
## grupo6=recente            0.9333333  2.033333  7.00000
## 
## $upper
##                                  25       50 75
## grupo6=agudo               1.166667 10.43333 NA
## grupo6=cronico cd4 <= 350        NA       NA NA
## grupo6=cronico cd4 > 350  13.300000 35.96667 NA
## grupo6=recente             5.500000 22.00000 NA
remove(.Survfit)



.Survfit <- survfit(Surv(tempomeses, relacaomaior1.x) ~ grupo5, 
  conf.type="log", conf.int=0.95, type="kaplan-meier", error="greenwood", 
  data=h)
.Survfit
## Call: survfit(formula = Surv(tempomeses, relacaomaior1.x) ~ grupo5, 
##     data = h, error = "greenwood", conf.type = "log", conf.int = 0.95, 
##     type = "kaplan-meier")
## 
##    172 observations deleted due to missingness 
##                                n events median 0.95LCL 0.95UCL
## grupo5=Agudo                  63     47   3.63    1.17    10.4
## grupo5=cronico cd4 < 200      19      0     NA      NA      NA
## grupo5=cronico cd4 > 350     287    116  27.30   22.90    36.0
## grupo5=cronico cd4 200 - 350  35      2     NA      NA      NA
## grupo5=Recente                29     22   6.00    2.03    22.0
plot(.Survfit, col=1:5, lty=1:5, mark.time=TRUE)
legend("bottomleft", legend=c("grupo5=Agudo","grupo5=cronico cd4 < 200",
  "grupo5=cronico cd4 > 350","grupo5=cronico cd4 200 - 350","grupo5=Recente"),
   col=1:5, lty=1:5, bty="n")

quantile(.Survfit, quantiles=c(.25,.5,.75))
## $quantile
##                                      25        50       75
## grupo5=Agudo                  0.8333333  3.633333 16.80000
## grupo5=cronico cd4 < 200             NA        NA       NA
## grupo5=cronico cd4 > 350     10.5666667 27.300000 54.56667
## grupo5=cronico cd4 200 - 350         NA        NA       NA
## grupo5=Recente                1.4333333  6.000000 22.00000
## 
## $lower
##                                     25        50       75
## grupo5=Agudo                 0.1000000  1.166667  6.00000
## grupo5=cronico cd4 < 200            NA        NA       NA
## grupo5=cronico cd4 > 350     6.4000000 22.900000 45.03333
## grupo5=cronico cd4 200 - 350        NA        NA       NA
## grupo5=Recente               0.9333333  2.033333  7.00000
## 
## $upper
##                                     25       50 75
## grupo5=Agudo                  1.166667 10.43333 NA
## grupo5=cronico cd4 < 200            NA       NA NA
## grupo5=cronico cd4 > 350     13.300000 35.96667 NA
## grupo5=cronico cd4 200 - 350        NA       NA NA
## grupo5=Recente                5.500000 22.00000 NA
remove(.Survfit)

a<-coxph(Surv(tempomeses, relacaomaior1.x) ~ grupo5, 
                     method="efron", data=h)

summary(a)
## Call:
## coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ grupo5, data = h, 
##     method = "efron")
## 
##   n= 433, number of events= 187 
##    (172 observations deleted due to missingness)
## 
##                                   coef  exp(coef)   se(coef)      z Pr(>|z|)
## grupo5cronico cd4 < 200     -1.759e+01  2.294e-08  1.495e+03 -0.012    0.991
## grupo5cronico cd4 > 350     -1.309e+00  2.701e-01  1.774e-01 -7.380 1.59e-13
## grupo5cronico cd4 200 - 350 -3.288e+00  3.732e-02  7.227e-01 -4.550 5.37e-06
## grupo5Recente               -2.489e-01  7.796e-01  2.589e-01 -0.962    0.336
##                                
## grupo5cronico cd4 < 200        
## grupo5cronico cd4 > 350     ***
## grupo5cronico cd4 200 - 350 ***
## grupo5Recente                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                             exp(coef) exp(-coef) lower .95 upper .95
## grupo5cronico cd4 < 200     2.294e-08  4.360e+07  0.000000       Inf
## grupo5cronico cd4 > 350     2.701e-01  3.703e+00  0.190754    0.3824
## grupo5cronico cd4 200 - 350 3.732e-02  2.680e+01  0.009051    0.1538
## grupo5Recente               7.796e-01  1.283e+00  0.469383    1.2949
## 
## Concordance= 0.689  (se = 0.018 )
## Likelihood ratio test= 92.56  on 4 df,   p=<2e-16
## Wald test            = 74.45  on 4 df,   p=3e-15
## Score (logrank) test = 103.7  on 4 df,   p=<2e-16
b<-coxph(Surv(tempomeses, relacaomaior1.x) ~ grupo6, 
                     method="efron",data=h)
summary(b)
## Call:
## coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ grupo6, data = h, 
##     method = "efron")
## 
##   n= 433, number of events= 187 
##    (172 observations deleted due to missingness)
## 
##                              coef exp(coef) se(coef)      z Pr(>|z|)    
## grupo6cronico cd4 <= 350 -3.59901   0.02735  0.72254 -4.981 6.32e-07 ***
## grupo6cronico cd4 > 350  -1.30944   0.26997  0.17739 -7.382 1.56e-13 ***
## grupo6recente            -0.24904   0.77955  0.25888 -0.962    0.336    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                          exp(coef) exp(-coef) lower .95 upper .95
## grupo6cronico cd4 <= 350   0.02735     36.562  0.006637    0.1127
## grupo6cronico cd4 > 350    0.26997      3.704  0.190687    0.3822
## grupo6recente              0.77955      1.283  0.469334    1.2948
## 
## Concordance= 0.689  (se = 0.018 )
## Likelihood ratio test= 91.32  on 3 df,   p=<2e-16
## Wald test            = 77.74  on 3 df,   p=<2e-16
## Score (logrank) test = 103.6  on 3 df,   p=<2e-16
multi<-coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ grupo5 +COR +idade5, id=Registro,data = banco, method = "efron")

sjPlot::tab_model(multi)
  Surv(tempomeses,
relacaomaior1.x)
Predictors Estimates CI p
grupo5 [cronico cd4 <
200]
0.00 0.00 – Inf 0.991
grupo5 [cronico cd4 >
350]
0.26 0.18 – 0.37 <0.001
grupo5 [cronico cd4 200 -
350]
0.04 0.01 – 0.16 <0.001
grupo5 [Recente] 0.79 0.47 – 1.31 0.355
COR [Pardo/Negro] 1.39 1.00 – 1.91 0.047
idade5 [1] 0.73 0.54 – 0.97 0.032
Observations 429
R2 Nagelkerke 0.416
multi<-coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ grupo6 +COR +idade5,data = h, method = "efron")

sjPlot::tab_model(multi)
  Surv(tempomeses,
relacaomaior1.x)
Predictors Estimates CI p
grupo6 [cronico cd4 <=
350]
0.03 0.01 – 0.12 <0.001
grupo6 [cronico cd4 >
350]
0.26 0.18 – 0.37 <0.001
grupo6 [recente] 0.79 0.47 – 1.31 0.354
COR [Pardo/Negro] 1.39 1.01 – 1.91 0.046
idade5 [1] 0.73 0.54 – 0.97 0.031
Observations 429
R2 Nagelkerke 0.412
h$grupo6[h$grupo6=="cronico cd4 <= 350"]<-"01cronico cd4 <= 350"

multi<-coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ grupo6 +COR +idade5,data = h, method = "efron")

sjPlot::tab_model(multi)
  Surv(tempomeses,
relacaomaior1.x)
Predictors Estimates CI p
grupo6 [agudo] 35.61 8.64 – 146.84 <0.001
grupo6 [cronico cd4 >
350]
9.21 2.27 – 37.32 0.002
grupo6 [recente] 28.00 6.57 – 119.38 <0.001
COR [Pardo/Negro] 1.39 1.01 – 1.91 0.046
idade5 [1] 0.73 0.54 – 0.97 0.031
Observations 429
R2 Nagelkerke 0.412
multi<-coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ cargaviral,data = h, method = "efron")

sjPlot::tab_model(multi)
  Surv(tempomeses,
relacaomaior1.x)
Predictors Estimates CI p
cargaviral 1.00 1.00 – 1.00 0.408
Observations 155
R2 Nagelkerke 0.126
multi<-coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ grupo5 +COR +idade4, id=Registro,data = banco, method = "efron")

sjPlot::tab_model(multi)
  Surv(tempomeses,
relacaomaior1.x)
Predictors Estimates CI p
grupo5 [cronico cd4 <
200]
0.00 0.00 – Inf 0.991
grupo5 [cronico cd4 >
350]
0.26 0.19 – 0.37 <0.001
grupo5 [cronico cd4 200 -
350]
0.04 0.01 – 0.16 <0.001
grupo5 [Recente] 0.81 0.48 – 1.34 0.404
COR [Pardo/Negro] 1.37 0.99 – 1.89 0.056
idade4 0.98 0.96 – 1.00 0.089
Observations 429
R2 Nagelkerke 0.411
multi<-coxph(formula = Surv(tempomeses, relacaomaior1.x) ~ grupo6 +COR +idade4,data = h, method = "efron")

sjPlot::tab_model(multi)
  Surv(tempomeses,
relacaomaior1.x)
Predictors Estimates CI p
grupo6 [agudo] 33.99 8.23 – 140.41 <0.001
grupo6 [cronico cd4 >
350]
8.91 2.19 – 36.19 0.002
grupo6 [recente] 27.38 6.42 – 116.83 <0.001
COR [Pardo/Negro] 1.37 0.99 – 1.90 0.054
idade4 0.98 0.96 – 1.00 0.088
Observations 429
R2 Nagelkerke 0.407