require(tidyverse)
require(reporttools)
library(dplyr)
library(rlang)

dataset<-read.csv("dataset.csv")
include_xpert_neg<-FALSE

rd_ci_binary <- function(data, var, group = group, level = "1", method = c("wald","score")) {
  method <- match.arg(method)
  var <- enquo(var)
  grp <- enquo(group)
  
  s <- data %>%
    filter(!is.na(!!var), !is.na(!!grp)) %>%
    mutate(
      y = as.integer(as.character(!!var) == as.character(level)),  # both to char
      g = as.integer(as.character(!!grp))                           # handles factor "0"/"1"
    ) %>%
    group_by(g) %>%
    summarise(n = n(), x = sum(y), p = mean(y), .groups = "drop")
  
  # guard: need exactly two groups
  if (nrow(s) != 2 || !all(c(0,1) %in% s$g))
    stop("group variable must have exactly two levels coded 0 and 1")
  
  n0 <- s$n[s$g == 0]; x0 <- s$x[s$g == 0]; p0 <- s$p[s$g == 0]
  n1 <- s$n[s$g == 1]; x1 <- s$x[s$g == 1]; p1 <- s$p[s$g == 1]
  
  RD <- p1 - p0
  
  if (method == "wald") {
    se <- sqrt(p1*(1-p1)/n1 + p0*(1-p0)/n0)
    L  <- RD - 1.96*se
    U  <- RD + 1.96*se
  } else {
    pt <- prop.test(x = c(x1, x0), n = c(n1, n0), correct = FALSE)
    L <- pt$conf.int[1]; U <- pt$conf.int[2]
  }
  
  tibble(
    n0 = n0, p0 = p0,
    n1 = n1, p1 = p1,
    RD = RD, LCI = L, UCI = U,
    RD_95CI = sprintf("%.1f%% (%.1f%%, %.1f%%)", 100*RD, 100*L, 100*U)
  )
}

table1_row_binary <- function(data, var, label, group = group, level = 1, method = "score") {
  var <- enquo(var)
  grp <- enquo(group)
  
  rd <- rd_ci_binary(data, !!var, group = !!grp, level = level, method = method)
  
  tibble(
    Variable = label,
    `Group 0` = sprintf("%d (%.1f%%)", round(rd$p0 * rd$n0), 100 * rd$p0),
    `Group 1` = sprintf("%d (%.1f%%)", round(rd$p1 * rd$n1), 100 * rd$p1),
    `Diff in proportion (95% CI)` = rd$RD_95CI
  )
}

dataset<-dataset[dataset$TB==1,]
if (include_xpert_neg == FALSE) {
  dataset<-dataset[dataset$xpert_pos==1,]
}
dataset<-dataset[!(dataset$before_threshold_change==1 & dataset$survey=="Vukuzazi"),]

dataset$survey2<-0
dataset$survey2[dataset$survey=="Vukuzazi"]<-1

if (include_xpert_neg == FALSE) {
  rows<-26
} else {
  rows<-27
}

table<-as.data.frame(matrix(NA,ncol=17,nrow=rows))
colnames(table)<-c("variable","category",
       "v_a_num","v_a_prop","v_s_num","v_s_prop","v_diff",
       "a_a_num","a_a_prop","a_s_num","a_s_prop","a_diff",
       "v_num","a_num","v_prop","a_prop","diff")

#Total
table$variable[1]<-"Total (row percentages)"
table$v_a_num[1]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB"])
table$v_s_num[1]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB"])
table$a_a_num[1]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB"])
table$a_s_num[1]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB"])
table$v_num[1]<-length(dataset$survey[dataset$survey=="Vukuzazi"])
table$a_num[1]<-length(dataset$survey[dataset$survey=="AHCoS"])
table$v_a_prop[1]<-table$v_a_num[1] / (table$v_a_num[1] + table$v_s_num[1])
table$v_s_prop[1]<-table$v_s_num[1] / (table$v_a_num[1] + table$v_s_num[1])
table$a_a_prop[1]<-table$a_a_num[1] / (table$a_a_num[1] + table$a_s_num[1])
table$a_s_prop[1]<-table$a_s_num[1] / (table$a_a_num[1] + table$a_s_num[1])
table$v_prop[1]<-table$v_num[1] / (table$v_num[1] + table$a_num[1])
table$a_prop[1]<-table$a_num[1] / (table$v_num[1] + table$a_num[1])

#Sex
start_row<-2
cats<-2
table$variable[start_row]<-"Sex"
table$category[start_row]<-"Male"
table$category[start_row+1]<-"Female"

table$v_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$sex=="Male" & is.na(dataset$sex)==FALSE])
table$v_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$sex=="Male" & is.na(dataset$sex)==FALSE])
table$a_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$sex=="Male" & is.na(dataset$sex)==FALSE])
table$a_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$sex=="Male" & is.na(dataset$sex)==FALSE])
table$v_a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$sex=="Female" & is.na(dataset$sex)==FALSE])
table$v_s_num[start_row+1]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$sex=="Female" & is.na(dataset$sex)==FALSE])
table$a_a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$sex=="Female" & is.na(dataset$sex)==FALSE])
table$a_s_num[start_row+1]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$sex=="Female" & is.na(dataset$sex)==FALSE])

table$v_num[start_row]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$sex=="Male" & is.na(dataset$sex)==FALSE])
table$a_num[start_row]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$sex=="Male" & is.na(dataset$sex)==FALSE])
table$v_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$sex=="Female" & is.na(dataset$sex)==FALSE])
table$a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$sex=="Female" & is.na(dataset$sex)==FALSE])

a<-table1_row_binary(dataset, sex, "Male", group = survey2, level = "Male")
table$diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, sex, "Female", group = survey2, level = "Female")
table$diff[start_row+1]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="AHCoS",]
a<-table1_row_binary(data, sex, "Male", group = tbsymp, level = "Male")
table$a_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, sex, "Female", group = tbsymp, level = "Female")
table$a_diff[start_row+1]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="Vukuzazi",]
a<-table1_row_binary(data, sex, "Male", group = tbsymp, level = "Male")
table$v_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, sex, "Female", group = tbsymp, level = "Female")
table$v_diff[start_row+1]<-a$`Diff in proportion (95% CI)`


for (r in seq(start_row,(start_row + cats - 1))) {
  table$v_a_prop[r]<-table$v_a_num[r] / sum(table$v_a_num[start_row:(start_row + cats - 1)])
  table$v_s_prop[r]<-table$v_s_num[r] / sum(table$v_s_num[start_row:(start_row + cats - 1)])
  table$a_a_prop[r]<-table$a_a_num[r] / sum(table$a_a_num[start_row:(start_row + cats - 1)])
  table$a_s_prop[r]<-table$a_s_num[r] / sum(table$a_s_num[start_row:(start_row + cats - 1)])
  table$v_prop[r]<-table$v_num[r] / sum(table$v_num[start_row:(start_row + cats - 1)])
  table$a_prop[r]<-table$a_num[r] / sum(table$a_num[start_row:(start_row + cats - 1)])
}


#Age group
start_row<-start_row + cats
cats<-3
table$variable[start_row]<-"Age (years)"
table$category[start_row]<-"15 - 29"
table$category[(start_row + 1)]<-"30 - 44"
table$category[(start_row + 2)]<-"45+"
table$v_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$age_group=="15-29" & is.na(dataset$age_group)==FALSE])
table$v_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$age_group=="15-29" & is.na(dataset$age_group)==FALSE])
table$a_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$age_group=="15-29" & is.na(dataset$age_group)==FALSE])
table$a_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$age_group=="15-29" & is.na(dataset$age_group)==FALSE])
table$v_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$age_group=="30-44" & is.na(dataset$age_group)==FALSE])
table$v_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$age_group=="30-44" & is.na(dataset$age_group)==FALSE])
table$a_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$age_group=="30-44" & is.na(dataset$age_group)==FALSE])
table$a_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$age_group=="30-44" & is.na(dataset$age_group)==FALSE])
table$v_a_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$age_group=="45+" & is.na(dataset$age_group)==FALSE])
table$v_s_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$age_group=="45+" & is.na(dataset$age_group)==FALSE])
table$a_a_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$age_group=="45+" & is.na(dataset$age_group)==FALSE])
table$a_s_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$age_group=="45+" & is.na(dataset$age_group)==FALSE])

table$v_num[start_row]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$age_group=="15-29" & is.na(dataset$age_group)==FALSE])
table$v_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$age_group=="30-44" & is.na(dataset$age_group)==FALSE])
table$v_num[start_row+2]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$age_group=="45+" & is.na(dataset$age_group)==FALSE])
table$a_num[start_row]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$age_group=="15-29" & is.na(dataset$age_group)==FALSE])
table$a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$age_group=="30-44" & is.na(dataset$age_group)==FALSE])
table$a_num[start_row+2]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$age_group=="45+" & is.na(dataset$age_group)==FALSE])

a<-table1_row_binary(dataset, age_group, "15-29", group = survey2, level = "15-29")
table$diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, age_group, "30-44", group = survey2, level = "30-44")
table$diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, age_group, "45+", group = survey2, level = "45+")
table$diff[start_row+2]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="AHCoS",]
a<-table1_row_binary(data, age_group, "15-29", group = tbsymp, level = "15-29")
table$a_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, age_group, "30-44", group = tbsymp, level = "30-44")
table$a_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, age_group, "45+", group = tbsymp, level = "45+")
table$a_diff[start_row+2]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="Vukuzazi",]
a<-table1_row_binary(data, age_group, "15-29", group = tbsymp, level = "15-29")
table$v_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, age_group, "30-44", group = tbsymp, level = "30-44")
table$v_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, age_group, "45+", group = tbsymp, level = "45+")
table$v_diff[start_row+2]<-a$`Diff in proportion (95% CI)`

for (r in seq(start_row,(start_row + cats - 1))) {
  table$v_a_prop[r]<-table$v_a_num[r] / sum(table$v_a_num[start_row:(start_row + cats - 1)])
  table$v_s_prop[r]<-table$v_s_num[r] / sum(table$v_s_num[start_row:(start_row + cats - 1)])
  table$a_a_prop[r]<-table$a_a_num[r] / sum(table$a_a_num[start_row:(start_row + cats - 1)])
  table$a_s_prop[r]<-table$a_s_num[r] / sum(table$a_s_num[start_row:(start_row + cats - 1)])
  table$v_prop[r]<-table$v_num[r] / sum(table$v_num[start_row:(start_row + cats - 1)])
  table$a_prop[r]<-table$a_num[r] / sum(table$a_num[start_row:(start_row + cats - 1)])
}


#Past TB
start_row<-start_row + cats
cats<-2
table$variable[start_row]<-"Past TB treatment"
table$category[start_row]<-"No"
table$category[start_row+1]<-"Yes"

table$v_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$pastTB==0 & is.na(dataset$pastTB)==FALSE])
table$v_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$pastTB==0 & is.na(dataset$pastTB)==FALSE])
table$a_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$pastTB==0 & is.na(dataset$pastTB)==FALSE])
table$a_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$pastTB==0 & is.na(dataset$pastTB)==FALSE])
table$v_a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$pastTB==1 & is.na(dataset$pastTB)==FALSE])
table$v_s_num[start_row+1]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$pastTB==1 & is.na(dataset$pastTB)==FALSE])
table$a_a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$pastTB==1 & is.na(dataset$pastTB)==FALSE])
table$a_s_num[start_row+1]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$pastTB==1 & is.na(dataset$pastTB)==FALSE])
table$v_num[start_row]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$pastTB==0 & is.na(dataset$pastTB)==FALSE])
table$a_num[start_row]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$pastTB==0 & is.na(dataset$pastTB)==FALSE])
table$v_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$pastTB==1 & is.na(dataset$pastTB)==FALSE])
table$a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$pastTB==1 & is.na(dataset$pastTB)==FALSE])

a<-table1_row_binary(dataset, pastTB, 0, group = survey2, level = 0)
table$diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, pastTB, 1, group = survey2, level = 1)
table$diff[start_row+1]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="AHCoS",]
a<-table1_row_binary(data, pastTB, 0, group = tbsymp, level = 0)
table$a_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, pastTB, 1, group = tbsymp, level = 1)
table$a_diff[start_row+1]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="Vukuzazi",]
a<-table1_row_binary(data, pastTB, 0, group = tbsymp, level = 0)
table$v_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, pastTB, 1, group = tbsymp, level = 1)
table$v_diff[start_row+1]<-a$`Diff in proportion (95% CI)`

for (r in seq(start_row,(start_row + cats - 1))) {
  table$v_a_prop[r]<-table$v_a_num[r] / sum(table$v_a_num[start_row:(start_row + cats - 1)])
  table$v_s_prop[r]<-table$v_s_num[r] / sum(table$v_s_num[start_row:(start_row + cats - 1)])
  table$a_a_prop[r]<-table$a_a_num[r] / sum(table$a_a_num[start_row:(start_row + cats - 1)])
  table$a_s_prop[r]<-table$a_s_num[r] / sum(table$a_s_num[start_row:(start_row + cats - 1)])
  table$v_prop[r]<-table$v_num[r] / sum(table$v_num[start_row:(start_row + cats - 1)])
  table$a_prop[r]<-table$a_num[r] / sum(table$a_num[start_row:(start_row + cats - 1)])
}


#BMI

start_row<-start_row + cats
cats<-3
dataset$bmi<-as.numeric(dataset$bmi)
table$variable[start_row]<-"BMI (kg/m2)"
table$category[start_row]<-"Underweight"
table$category[(start_row + 1)]<-"Normal weight"
table$category[(start_row + 2)]<-"Overweight/obese"
table$v_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$bmi_group=="Underweight" & is.na(dataset$bmi_group)==FALSE])
table$v_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$bmi_group=="Underweight" & is.na(dataset$bmi_group)==FALSE])
table$a_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$bmi_group=="Underweight" & is.na(dataset$bmi_group)==FALSE])
table$a_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$bmi_group=="Underweight" & is.na(dataset$bmi_group)==FALSE])
table$v_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$bmi_group=="Normal weight" & is.na(dataset$bmi_group)==FALSE])
table$v_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$bmi_group=="Normal weight" & is.na(dataset$bmi_group)==FALSE])
table$a_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$bmi_group=="Normal weight" & is.na(dataset$bmi_group)==FALSE])
table$a_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$bmi_group=="Normal weight" & is.na(dataset$bmi_group)==FALSE])
table$v_a_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$bmi_group=="Overweight/obese" & is.na(dataset$bmi_group)==FALSE])
table$v_s_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$bmi_group=="Overweight/obese" & is.na(dataset$bmi_group)==FALSE])
table$a_a_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$bmi_group=="Overweight/obese" & is.na(dataset$bmi_group)==FALSE])
table$a_s_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$bmi_group=="Overweight/obese" & is.na(dataset$bmi_group)==FALSE])

table$v_num[start_row]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$bmi_group=="Underweight" & is.na(dataset$bmi_group)==FALSE])
table$v_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$bmi_group=="Normal weight" & is.na(dataset$bmi_group)==FALSE])
table$v_num[start_row+2]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$bmi_group=="Overweight/obese" & is.na(dataset$bmi_group)==FALSE])
table$a_num[start_row]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$bmi_group=="Underweight" & is.na(dataset$bmi_group)==FALSE])
table$a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$bmi_group=="Normal weight" & is.na(dataset$bmi_group)==FALSE])
table$a_num[start_row+2]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$bmi_group=="Overweight/obese" & is.na(dataset$bmi_group)==FALSE])

a<-table1_row_binary(dataset, bmi_group, "Underweight", group = survey2, level = "Underweight")
table$diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, bmi_group, "Normal weight", group = survey2, level = "Normal weight")
table$diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, bmi_group, "Overweight/obese", group = survey2, level = "Overweight/obese")
table$diff[start_row+2]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="AHCoS",]
a<-table1_row_binary(data, bmi_group, "Underweight", group = tbsymp, level = "Underweight")
table$a_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, bmi_group, "Normal weight", group = tbsymp, level = "Normal weight")
table$a_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, bmi_group, "Overweight/obese", group = tbsymp, level = "Overweight/obese")
table$a_diff[start_row+2]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="Vukuzazi",]
a<-table1_row_binary(data, bmi_group, "Underweight", group = tbsymp, level = "Underweight")
table$v_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, bmi_group, "Normal weight", group = tbsymp, level = "Normal weight")
table$v_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, bmi_group, "Overweight/obese", group = tbsymp, level = "Overweight/obese")
table$v_diff[start_row+2]<-a$`Diff in proportion (95% CI)`

for (r in seq(start_row,(start_row + cats - 1))) {
  table$v_a_prop[r]<-table$v_a_num[r] / sum(table$v_a_num[start_row:(start_row + cats - 1)])
  table$v_s_prop[r]<-table$v_s_num[r] / sum(table$v_s_num[start_row:(start_row + cats - 1)])
  table$a_a_prop[r]<-table$a_a_num[r] / sum(table$a_a_num[start_row:(start_row + cats - 1)])
  table$a_s_prop[r]<-table$a_s_num[r] / sum(table$a_s_num[start_row:(start_row + cats - 1)])
  table$v_prop[r]<-table$v_num[r] / sum(table$v_num[start_row:(start_row + cats - 1)])
  table$a_prop[r]<-table$a_num[r] / sum(table$a_num[start_row:(start_row + cats - 1)])
}



#HIV/any ART

start_row<-start_row + cats
cats<-3
table$variable[start_row]<-"HIV/ART"
table$category[start_row]<-"HIV-"
table$category[(start_row + 1)]<-"HIV+ART-"
table$category[(start_row + 2)]<-"HIV+ART+"
table$v_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$hivart=="HIV-" & is.na(dataset$hivart)==FALSE])
table$v_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$hivart=="HIV-" & is.na(dataset$hivart)==FALSE])
table$a_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$hivart=="HIV-" & is.na(dataset$hivart)==FALSE])
table$a_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$hivart=="HIV-" & is.na(dataset$hivart)==FALSE])
table$v_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$hivart=="HIV+ART-" & is.na(dataset$hivart)==FALSE])
table$v_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$hivart=="HIV+ART-" & is.na(dataset$hivart)==FALSE])
table$a_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$hivart=="HIV+ART-" & is.na(dataset$hivart)==FALSE])
table$a_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$hivart=="HIV+ART-" & is.na(dataset$hivart)==FALSE])
table$v_a_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$hivart=="HIV+ART+" & is.na(dataset$hivart)==FALSE])
table$v_s_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$hivart=="HIV+ART+" & is.na(dataset$hivart)==FALSE])
table$a_a_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$hivart=="HIV+ART+" & is.na(dataset$hivart)==FALSE])
table$a_s_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$hivart=="HIV+ART+" & is.na(dataset$hivart)==FALSE])

table$v_num[start_row]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$hivart=="HIV-" & is.na(dataset$hivart)==FALSE])
table$v_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$hivart=="HIV+ART-" & is.na(dataset$hivart)==FALSE])
table$v_num[start_row+2]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$hivart=="HIV+ART+" & is.na(dataset$hivart)==FALSE])
table$a_num[start_row]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$hivart=="HIV-" & is.na(dataset$hivart)==FALSE])
table$a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$hivart=="HIV+ART-" & is.na(dataset$hivart)==FALSE])
table$a_num[start_row+2]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$hivart=="HIV+ART+" & is.na(dataset$hivart)==FALSE])

a<-table1_row_binary(dataset, hivart, "HIV-", group = survey2, level = "HIV-")
table$diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, hivart, "HIV+ART-", group = survey2, level = "HIV+ART-")
table$diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, hivart, "HIV+ART+", group = survey2, level = "HIV+ART+")
table$diff[start_row+2]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="AHCoS",]
a<-table1_row_binary(data, hivart, "HIV-", group = tbsymp, level = "HIV-")
table$a_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, hivart, "HIV+ART-", group = tbsymp, level = "HIV+ART-")
table$a_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, hivart, "HIV+ART+", group = tbsymp, level = "HIV+ART+")
table$a_diff[start_row+2]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="Vukuzazi",]
a<-table1_row_binary(data, hivart, "HIV-", group = tbsymp, level = "HIV-")
table$v_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, hivart, "HIV+ART-", group = tbsymp, level = "HIV+ART-")
table$v_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, hivart, "HIV+ART+", group = tbsymp, level = "HIV+ART+")
table$v_diff[start_row+2]<-a$`Diff in proportion (95% CI)`

for (r in seq(start_row,(start_row + cats - 1))) {
  table$v_a_prop[r]<-table$v_a_num[r] / sum(table$v_a_num[start_row:(start_row + cats - 1)])
  table$v_s_prop[r]<-table$v_s_num[r] / sum(table$v_s_num[start_row:(start_row + cats - 1)])
  table$a_a_prop[r]<-table$a_a_num[r] / sum(table$a_a_num[start_row:(start_row + cats - 1)])
  table$a_s_prop[r]<-table$a_s_num[r] / sum(table$a_s_num[start_row:(start_row + cats - 1)])
  table$v_prop[r]<-table$v_num[r] / sum(table$v_num[start_row:(start_row + cats - 1)])
  table$a_prop[r]<-table$a_num[r] / sum(table$a_num[start_row:(start_row + cats - 1)])
}


#Cavitation
start_row<-start_row + cats
cats<-2
table$variable[start_row]<-"Cavitation"
table$category[start_row]<-"No"
table$category[start_row+1]<-"Yes"

table$v_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$cavitation==0 & is.na(dataset$cavitation)==FALSE])
table$v_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$cavitation==0 & is.na(dataset$cavitation)==FALSE])
table$a_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$cavitation==0 & is.na(dataset$cavitation)==FALSE])
table$a_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$cavitation==0 & is.na(dataset$cavitation)==FALSE])
table$v_a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$cavitation==1 & is.na(dataset$cavitation)==FALSE])
table$v_s_num[start_row+1]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$cavitation==1 & is.na(dataset$cavitation)==FALSE])
table$a_a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$cavitation==1 & is.na(dataset$cavitation)==FALSE])
table$a_s_num[start_row+1]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$cavitation==1 & is.na(dataset$cavitation)==FALSE])

table$v_num[start_row]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$cavitation==0 & is.na(dataset$cavitation)==FALSE])
table$a_num[start_row]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$cavitation==0 & is.na(dataset$cavitation)==FALSE])
table$v_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$cavitation==1 & is.na(dataset$cavitation)==FALSE])
table$a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$cavitation==1 & is.na(dataset$cavitation)==FALSE])

a<-table1_row_binary(dataset, cavitation, 0, group = survey2, level = 0)
table$diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, cavitation, 1, group = survey2, level = 1)
table$diff[start_row+1]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="AHCoS",]
a<-table1_row_binary(data, cavitation, 0, group = tbsymp, level = 0)
table$a_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, cavitation, 1, group = tbsymp, level = 1)
table$a_diff[start_row+1]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="Vukuzazi",]
a<-table1_row_binary(data, cavitation, 0, group = tbsymp, level = 0)
table$v_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, cavitation, 1, group = tbsymp, level = 1)
table$v_diff[start_row+1]<-a$`Diff in proportion (95% CI)`

for (r in seq(start_row,(start_row + cats - 1))) {
  table$v_a_prop[r]<-table$v_a_num[r] / sum(table$v_a_num[start_row:(start_row + cats - 1)])
  table$v_s_prop[r]<-table$v_s_num[r] / sum(table$v_s_num[start_row:(start_row + cats - 1)])
  table$a_a_prop[r]<-table$a_a_num[r] / sum(table$a_a_num[start_row:(start_row + cats - 1)])
  table$a_s_prop[r]<-table$a_s_num[r] / sum(table$a_s_num[start_row:(start_row + cats - 1)])
  table$v_prop[r]<-table$v_num[r] / sum(table$v_num[start_row:(start_row + cats - 1)])
  table$a_prop[r]<-table$a_num[r] / sum(table$a_num[start_row:(start_row + cats - 1)])
}



#CAD score

start_row<-start_row + cats
cats<-4
dataset <- mutate(dataset,
      cadgrp = cut(cad_v5, breaks=c(0,50,70,90,100), right=F))
table$variable[start_row]<-"CAD score"
table$category[start_row]<-"<50"
table$category[(start_row + 1)]<-"50 - 69"
table$category[(start_row + 2)]<-"70 - 89"
table$category[(start_row + 3)]<-"90 - 100"
table$v_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$cadgrp=="[0,50)" & is.na(dataset$cadgrp)==FALSE])
table$v_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$cadgrp=="[0,50)" & is.na(dataset$cadgrp)==FALSE])
table$a_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$cadgrp=="[0,50)" & is.na(dataset$cadgrp)==FALSE])
table$a_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$cadgrp=="[0,50)" & is.na(dataset$cadgrp)==FALSE])
table$v_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$cadgrp=="[50,70)" & is.na(dataset$cadgrp)==FALSE])
table$v_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$cadgrp=="[50,70)" & is.na(dataset$cadgrp)==FALSE])
table$a_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$cadgrp=="[50,70)" & is.na(dataset$cadgrp)==FALSE])
table$a_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$cadgrp=="[50,70)" & is.na(dataset$cadgrp)==FALSE])
table$v_a_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$cadgrp=="[70,90)" & is.na(dataset$cadgrp)==FALSE])
table$v_s_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$cadgrp=="[70,90)" & is.na(dataset$cadgrp)==FALSE])
table$a_a_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$cadgrp=="[70,90)" & is.na(dataset$cadgrp)==FALSE])
table$a_s_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$cadgrp=="[70,90)" & is.na(dataset$cadgrp)==FALSE])
table$v_a_num[(start_row + 3)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$cadgrp=="[90,100)" & is.na(dataset$cadgrp)==FALSE])
table$v_s_num[(start_row + 3)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$cadgrp=="[90,100)" & is.na(dataset$cadgrp)==FALSE])
table$a_a_num[(start_row + 3)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$cadgrp=="[90,100)" & is.na(dataset$cadgrp)==FALSE])
table$a_s_num[(start_row + 3)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$cadgrp=="[90,100)" & is.na(dataset$cadgrp)==FALSE])

table$v_num[start_row]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$cadgrp=="[0,50)" & is.na(dataset$cadgrp)==FALSE])
table$v_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$cadgrp=="[50,70)" & is.na(dataset$cadgrp)==FALSE])
table$v_num[start_row+2]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$cadgrp=="[70,90)" & is.na(dataset$cadgrp)==FALSE])
table$v_num[start_row+3]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$cadgrp=="[90,100)" & is.na(dataset$cadgrp)==FALSE])
table$a_num[start_row]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$cadgrp=="[0,50)" & is.na(dataset$cadgrp)==FALSE])
table$a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$cadgrp=="[50,70)" & is.na(dataset$cadgrp)==FALSE])
table$a_num[start_row+2]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$cadgrp=="[70,90)" & is.na(dataset$cadgrp)==FALSE])
table$a_num[start_row+3]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$cadgrp=="[90,100)" & is.na(dataset$cadgrp)==FALSE])

a<-table1_row_binary(dataset, cadgrp, "[0,50)", group = survey2, level = "[0,50)")
table$diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, cadgrp, "[50,70)", group = survey2, level = "[50,70)")
table$diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, cadgrp, "[70,90)", group = survey2, level = "[70,90)")
table$diff[start_row+2]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, cadgrp, "[90,100)", group = survey2, level = "[90,100)")
table$diff[start_row+3]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="AHCoS",]
a<-table1_row_binary(data, cadgrp, "[0,50)", group = tbsymp, level = "[0,50)")
table$a_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, cadgrp, "[50,70)", group = tbsymp, level = "[50,70)")
table$a_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, cadgrp, "[70,90)", group = tbsymp, level = "[70,90)")
table$a_diff[start_row+2]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, cadgrp, "[90,100)", group = tbsymp, level = "[90,100)")
table$a_diff[start_row+3]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="Vukuzazi",]
a<-table1_row_binary(data, cadgrp, "[0,50)", group = tbsymp, level = "[0,50)")
table$v_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, cadgrp, "[50,70)", group = tbsymp, level = "[50,70)")
table$v_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, cadgrp, "[70,90)", group = tbsymp, level = "[70,90)")
table$v_diff[start_row+2]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, cadgrp, "[90,100)", group = tbsymp, level = "[90,100)")
table$v_diff[start_row+3]<-a$`Diff in proportion (95% CI)`


for (r in seq(start_row,(start_row + cats - 1))) {
  table$v_a_prop[r]<-table$v_a_num[r] / sum(table$v_a_num[start_row:(start_row + cats - 1)])
  table$v_s_prop[r]<-table$v_s_num[r] / sum(table$v_s_num[start_row:(start_row + cats - 1)])
  table$a_a_prop[r]<-table$a_a_num[r] / sum(table$a_a_num[start_row:(start_row + cats - 1)])
  table$a_s_prop[r]<-table$a_s_num[r] / sum(table$a_s_num[start_row:(start_row + cats - 1)])
  table$v_prop[r]<-table$v_num[r] / sum(table$v_num[start_row:(start_row + cats - 1)])
  table$a_prop[r]<-table$a_num[r] / sum(table$a_num[start_row:(start_row + cats - 1)])
}


#Xpert trace

if (include_xpert_neg == FALSE) {
  
  start_row<-start_row + cats
  cats<-2
  
  table$variable[start_row]<-"Xpert"
  table$category[start_row]<-"Trace"
  table$category[(start_row + 1)]<-"Greater than trace"
  table$v_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$above_trace==0 & is.na(dataset$above_trace)==FALSE])
  table$v_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$above_trace==0 & is.na(dataset$above_trace)==FALSE])
  table$a_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$above_trace==0 & is.na(dataset$above_trace)==FALSE])
  table$a_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$above_trace==0 & is.na(dataset$above_trace)==FALSE])
  table$v_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$above_trace==1 & is.na(dataset$above_trace)==FALSE])
  table$v_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$above_trace==1 & is.na(dataset$above_trace)==FALSE])
  table$a_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$above_trace==1 & is.na(dataset$above_trace)==FALSE])
  table$a_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$above_trace==1 & is.na(dataset$above_trace)==FALSE])
  
  table$v_num[start_row]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$above_trace==0 & is.na(dataset$above_trace)==FALSE])
  table$v_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$above_trace==1 & is.na(dataset$above_trace)==FALSE])
  table$a_num[start_row]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$above_trace==0 & is.na(dataset$above_trace)==FALSE])
  table$a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$above_trace==1 & is.na(dataset$above_trace)==FALSE])
  
  a<-table1_row_binary(dataset, above_trace, 0, group = survey2, level = 0)
  table$diff[start_row]<-a$`Diff in proportion (95% CI)`
  a<-table1_row_binary(dataset, above_trace, 1, group = survey2, level = 1)
  table$diff[start_row+1]<-a$`Diff in proportion (95% CI)`
  
  data<-dataset[dataset$survey=="AHCoS",]
  a<-table1_row_binary(data, above_trace, 0, group = tbsymp, level = 0)
  table$a_diff[start_row]<-a$`Diff in proportion (95% CI)`
  a<-table1_row_binary(data, above_trace, 1, group = tbsymp, level = 1)
  table$a_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
  
  data<-dataset[dataset$survey=="Vukuzazi",]
  a<-table1_row_binary(data, above_trace, 0, group = tbsymp, level = 0)
  table$v_diff[start_row]<-a$`Diff in proportion (95% CI)`
  a<-table1_row_binary(data, above_trace, 1, group = tbsymp, level = 1)
  table$v_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
  
  for (r in seq(start_row,(start_row + cats - 1))) {
    table$v_a_prop[r]<-table$v_a_num[r] / sum(table$v_a_num[start_row:(start_row + cats - 1)])
    table$v_s_prop[r]<-table$v_s_num[r] / sum(table$v_s_num[start_row:(start_row + cats - 1)])
    table$a_a_prop[r]<-table$a_a_num[r] / sum(table$a_a_num[start_row:(start_row + cats - 1)])
    table$a_s_prop[r]<-table$a_s_num[r] / sum(table$a_s_num[start_row:(start_row + cats - 1)])
    table$v_prop[r]<-table$v_num[r] / sum(table$v_num[start_row:(start_row + cats - 1)])
    table$a_prop[r]<-table$a_num[r] / sum(table$a_num[start_row:(start_row + cats - 1)])
  }
  
} else {
  
  start_row<-start_row + cats
  cats<-3
  
  table$variable[start_row]<-"Xpert"
  table$category[start_row]<-"Undetected"
  table$category[(start_row + 1)]<-"Trace"
  table$category[(start_row + 2)]<-"Greater than trace"
  table$v_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$xpert_pos==0 & is.na(dataset$above_trace)==FALSE])
  table$v_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$xpert_pos==0 & is.na(dataset$above_trace)==FALSE])
  table$a_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$xpert_pos==0 & is.na(dataset$above_trace)==FALSE])
  table$a_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$xpert_pos==0 & is.na(dataset$above_trace)==FALSE])
  table$v_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$above_trace==0 & dataset$xpert_pos==1 & is.na(dataset$above_trace)==FALSE])
  table$v_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$above_trace==0 & dataset$xpert_pos==1 & is.na(dataset$above_trace)==FALSE])
  table$a_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$above_trace==0 & dataset$xpert_pos==1 & is.na(dataset$above_trace)==FALSE])
  table$a_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$above_trace==0 & dataset$xpert_pos==1 & is.na(dataset$above_trace)==FALSE])
  table$v_a_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$above_trace==1 & dataset$xpert_pos==1 & is.na(dataset$above_trace)==FALSE])
  table$v_s_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$above_trace==1 & dataset$xpert_pos==1 & is.na(dataset$above_trace)==FALSE])
  table$a_a_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$above_trace==1 & dataset$xpert_pos==1 & is.na(dataset$above_trace)==FALSE])
  table$a_s_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$above_trace==1 & dataset$xpert_pos==1 & is.na(dataset$above_trace)==FALSE])
  
  table$v_num[start_row]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$xpert_pos==0 & is.na(dataset$above_trace)==FALSE])
  table$v_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$above_trace==0 & dataset$xpert_pos==1 & is.na(dataset$above_trace)==FALSE])
  table$v_num[start_row+2]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$above_trace==1 & dataset$xpert_pos==1 & is.na(dataset$above_trace)==FALSE])
  table$a_num[start_row]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$xpert_pos==0 & is.na(dataset$above_trace)==FALSE])
  table$a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$above_trace==0 & dataset$xpert_pos==1 & is.na(dataset$above_trace)==FALSE])
  table$a_num[start_row+2]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$above_trace==1 & dataset$xpert_pos==1 & is.na(dataset$above_trace)==FALSE])
  
  dataset$xpert3<-0
  dataset$xpert3[dataset$above_trace==0 & dataset$xpert_pos==1]<-1
  dataset$xpert3[dataset$above_trace==1 & dataset$xpert_pos==1]<-2
  
  a<-table1_row_binary(dataset, xpert3, 0, group = survey2, level = 0)
  table$diff[start_row]<-a$`Diff in proportion (95% CI)`
  a<-table1_row_binary(dataset, xpert3, 1, group = survey2, level = 1)
  table$diff[start_row+1]<-a$`Diff in proportion (95% CI)`
  a<-table1_row_binary(dataset, xpert3, 1, group = survey2, level = 2)
  table$diff[start_row+2]<-a$`Diff in proportion (95% CI)`
  
  data<-dataset[dataset$survey=="AHCoS",]
  a<-table1_row_binary(data, xpert3, 0, group = tbsymp, level = 0)
  table$a_diff[start_row]<-a$`Diff in proportion (95% CI)`
  a<-table1_row_binary(data, xpert3, 1, group = tbsymp, level = 1)
  table$a_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
  a<-table1_row_binary(data, xpert3, 1, group = tbsymp, level = 2)
  table$a_diff[start_row+2]<-a$`Diff in proportion (95% CI)`
  
  data<-dataset[dataset$survey=="Vukuzazi",]
  a<-table1_row_binary(data, xpert3, 0, group = tbsymp, level = 0)
  table$v_diff[start_row]<-a$`Diff in proportion (95% CI)`
  a<-table1_row_binary(data, xpert3, 1, group = tbsymp, level = 1)
  table$v_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
  a<-table1_row_binary(data, xpert3, 1, group = tbsymp, level = 2)
  table$v_diff[start_row+2]<-a$`Diff in proportion (95% CI)`
  
  for (r in seq(start_row,(start_row + cats - 1))) {
    table$v_a_prop[r]<-table$v_a_num[r] / sum(table$v_a_num[start_row:(start_row + cats - 1)])
    table$v_s_prop[r]<-table$v_s_num[r] / sum(table$v_s_num[start_row:(start_row + cats - 1)])
    table$a_a_prop[r]<-table$a_a_num[r] / sum(table$a_a_num[start_row:(start_row + cats - 1)])
    table$a_s_prop[r]<-table$a_s_num[r] / sum(table$a_s_num[start_row:(start_row + cats - 1)])
    table$v_prop[r]<-table$v_num[r] / sum(table$v_num[start_row:(start_row + cats - 1)])
    table$a_prop[r]<-table$a_num[r] / sum(table$a_num[start_row:(start_row + cats - 1)])
  }
}




#culture

start_row<-start_row + cats
cats<-4
table$variable[start_row]<-"Culture time to positivity"
table$category[start_row]<-"<10 days"
table$category[(start_row + 1)]<-"10 - 15 days"
table$category[(start_row + 2)]<-"15 - 42 days"
table$category[(start_row + 3)]<-"Culture negative"
table$v_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$culture_cat=="<10" & is.na(dataset$culture_cat)==FALSE])
table$v_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$culture_cat=="<10" & is.na(dataset$culture_cat)==FALSE])
table$a_a_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$culture_cat=="<10" & is.na(dataset$culture_cat)==FALSE])
table$a_s_num[start_row]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$culture_cat=="<10" & is.na(dataset$culture_cat)==FALSE])
table$v_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$culture_cat=="10-15" & is.na(dataset$culture_cat)==FALSE])
table$v_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$culture_cat=="10-15" & is.na(dataset$culture_cat)==FALSE])
table$a_a_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$culture_cat=="10-15" & is.na(dataset$culture_cat)==FALSE])
table$a_s_num[(start_row + 1)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$culture_cat=="10-15" & is.na(dataset$culture_cat)==FALSE])
table$v_a_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$culture_cat=="15-42" & is.na(dataset$culture_cat)==FALSE])
table$v_s_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$culture_cat=="15-42" & is.na(dataset$culture_cat)==FALSE])
table$a_a_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$culture_cat=="15-42" & is.na(dataset$culture_cat)==FALSE])
table$a_s_num[(start_row + 2)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$culture_cat=="15-42" & is.na(dataset$culture_cat)==FALSE])
table$v_a_num[(start_row + 3)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk aTB" & dataset$culture_cat=="negative" & is.na(dataset$culture_cat)==FALSE])
table$v_s_num[(start_row + 3)]<-length(dataset$survey_symp[dataset$survey_symp=="Vuk sTB" & dataset$culture_cat=="negative" & is.na(dataset$culture_cat)==FALSE])
table$a_a_num[(start_row + 3)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS aTB" & dataset$culture_cat=="negative" & is.na(dataset$culture_cat)==FALSE])
table$a_s_num[(start_row + 3)]<-length(dataset$survey_symp[dataset$survey_symp=="AHCoS sTB" & dataset$culture_cat=="negative" & is.na(dataset$culture_cat)==FALSE])

table$v_num[start_row]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$culture_cat=="<10" & is.na(dataset$culture_cat)==FALSE])
table$v_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$culture_cat=="10-15" & is.na(dataset$culture_cat)==FALSE])
table$v_num[start_row+2]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$culture_cat=="15-42" & is.na(dataset$culture_cat)==FALSE])
table$v_num[start_row+3]<-length(dataset$survey_symp[dataset$survey=="Vukuzazi" & dataset$culture_cat=="negative" & is.na(dataset$culture_cat)==FALSE])
table$a_num[start_row]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$culture_cat=="<10" & is.na(dataset$culture_cat)==FALSE])
table$a_num[start_row+1]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$culture_cat=="10-15" & is.na(dataset$culture_cat)==FALSE])
table$a_num[start_row+2]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$culture_cat=="15-42" & is.na(dataset$culture_cat)==FALSE])
table$a_num[start_row+3]<-length(dataset$survey_symp[dataset$survey=="AHCoS" & dataset$culture_cat=="negative" & is.na(dataset$culture_cat)==FALSE])

a<-table1_row_binary(dataset, culture_cat, "<10", group = survey2, level = "<10")
table$diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, culture_cat, "10-15", group = survey2, level = "10-15")
table$diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, culture_cat, "15-42", group = survey2, level = "15-42")
table$diff[start_row+2]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(dataset, culture_cat, "negative", group = survey2, level = "negative")
table$diff[start_row+3]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="AHCoS",]
a<-table1_row_binary(data, culture_cat, "<10", group = tbsymp, level = "<10")
table$a_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, culture_cat, "10-15", group = tbsymp, level = "10-15")
table$a_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, culture_cat, "15-42", group = tbsymp, level = "15-42")
table$a_diff[start_row+2]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, culture_cat, "negative", group = tbsymp, level = "negative")
table$a_diff[start_row+3]<-a$`Diff in proportion (95% CI)`

data<-dataset[dataset$survey=="Vukuzazi",]
a<-table1_row_binary(data, culture_cat, "<10", group = tbsymp, level = "<10")
table$v_diff[start_row]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, culture_cat, "10-15", group = tbsymp, level = "10-15")
table$v_diff[start_row+1]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, culture_cat, "15-42", group = tbsymp, level = "15-42")
table$v_diff[start_row+2]<-a$`Diff in proportion (95% CI)`
a<-table1_row_binary(data, culture_cat, "negative", group = tbsymp, level = "negative")
table$v_diff[start_row+3]<-a$`Diff in proportion (95% CI)`

for (r in seq(start_row,(start_row + cats - 1))) {
  table$v_a_prop[r]<-table$v_a_num[r] / sum(table$v_a_num[start_row:(start_row + cats - 1)])
  table$v_s_prop[r]<-table$v_s_num[r] / sum(table$v_s_num[start_row:(start_row + cats - 1)])
  table$a_a_prop[r]<-table$a_a_num[r] / sum(table$a_a_num[start_row:(start_row + cats - 1)])
  table$a_s_prop[r]<-table$a_s_num[r] / sum(table$a_s_num[start_row:(start_row + cats - 1)])
  table$v_prop[r]<-table$v_num[r] / sum(table$v_num[start_row:(start_row + cats - 1)])
  table$a_prop[r]<-table$a_num[r] / sum(table$a_num[start_row:(start_row + cats - 1)])
}



#formatting

table$v_a_prop<-formatC(signif(100*table$v_a_prop, digits=3), digits=3, format="fg", flag="#")
table$v_s_prop<-formatC(signif(100*table$v_s_prop, digits=3), digits=3, format="fg", flag="#")
table$a_a_prop<-formatC(signif(100*table$a_a_prop, digits=3), digits=3, format="fg", flag="#")
table$a_s_prop<-formatC(signif(100*table$a_s_prop, digits=3), digits=3, format="fg", flag="#")
table$v_prop<-formatC(signif(100*table$v_prop, digits=3), digits=3, format="fg", flag="#")
table$a_prop<-formatC(signif(100*table$a_prop, digits=3), digits=3, format="fg", flag="#")

table$v_a_prop[table$v_a_prop=="  NA"]<-""
table$v_s_prop[table$v_s_prop=="  NA"]<-""
table$a_a_prop[table$a_a_prop=="  NA"]<-""
table$a_s_prop[table$a_s_prop=="  NA"]<-""
table$v_prop[table$v_prop=="  NA"]<-""
table$a_prop[table$a_prop=="  NA"]<-""


table_export<-as.data.frame(matrix(NA,ncol=11,nrow=rows+3))
table_export[1,]<-c("","","By setting","","","By setting and reported symptoms","","","","","")
table_export[2,]<-c("","","","","","Community","","","Clinics","","")
table_export[3,]<-c("","","Community","Clinics","Difference in proportion (95% CI)","Asymptomatic","Symptomatic","Difference in proportion (95% CI)","Asymptomatic","Symptomatic","Difference in proportion (95% CI)")
table_export[4:(rows+3),1]<-table$variable
table_export[4:(rows+3),2]<-table$category
table_export[4:(rows+3),3]<-paste0(table$v_num," (",table$v_prop,"%)")
table_export[4:(rows+3),4]<-paste0(table$a_num," (",table$a_prop,"%)")
table_export[4:(rows+3),5]<-table$diff
table_export[4:(rows+3),6]<-paste0(table$v_a_num," (",table$v_a_prop,"%)")
table_export[4:(rows+3),7]<-paste0(table$v_s_num," (",table$v_s_prop,"%)")
table_export[4:(rows+3),8]<-table$v_diff
table_export[4:(rows+3),9]<-paste0(table$a_a_num," (",table$a_a_prop,"%)")
table_export[4:(rows+3),10]<-paste0(table$a_s_num," (",table$a_s_prop,"%)")
table_export[4:(rows+3),11]<-table$a_diff

if (include_xpert_neg == FALSE) {
  write.table(table_export,file="table1diffs_rexport.csv",sep=",",col.names = FALSE,row.names = FALSE,na="")
} else {
  write.table(table_export,file="table1diffs_rexport-include xpertneg.csv",sep=",",col.names = FALSE,row.names = FALSE,na="")
}




