Load libraries

## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
## 
## Attaching package: 'janitor'
## 
## 
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
## 
## 
## 
## Attaching package: 'scales'
## 
## 
## The following object is masked from 'package:purrr':
## 
##     discard
## 
## 
## The following object is masked from 'package:readr':
## 
##     col_factor

Read data from Google Sheet

## Rows: 5,347
## Columns: 50
## $ country                  <chr> "Afghanistan", "Afghanistan", "Afghanistan", …
## $ iso2                     <chr> "AF", "AF", "AF", "AF", "AF", "AF", "AF", "AF…
## $ iso3                     <chr> "AFG", "AFG", "AFG", "AFG", "AFG", "AFG", "AF…
## $ iso_numeric              <dbl> 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, …
## $ g_whoregion              <chr> "EMR", "EMR", "EMR", "EMR", "EMR", "EMR", "EM…
## $ year                     <dbl> 2000, 2001, 2002, 2003, 2004, 2005, 2006, 200…
## $ e_pop_num                <dbl> 20130323, 20284311, 21378110, 22733047, 23560…
## $ e_inc_100k               <dbl> 148, 175, 197, 215, 228, 237, 242, 241, 235, …
## $ e_inc_100k_lo            <dbl> 46, 66, 83, 97, 109, 118, 124, 127, 127, 126,…
## $ e_inc_100k_hi            <dbl> 1510, 1320, 1140, 992, 862, 754, 662, 597, 55…
## $ e_inc_num                <dbl> 30000, 35000, 42000, 49000, 54000, 58000, 620…
## $ e_inc_num_lo             <dbl> 9200, 13000, 18000, 22000, 26000, 29000, 3200…
## $ e_inc_num_hi             <dbl> 305000, 267000, 245000, 225000, 203000, 18400…
## $ e_tbhiv_prct             <dbl> 0.02, 0.01, 0.01, 0.01, 0.01, 0.02, 0.02, 0.0…
## $ e_tbhiv_prct_lo          <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ e_tbhiv_prct_hi          <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ e_inc_tbhiv_100k         <dbl> 0.03, 0.03, 0.03, 0.03, 0.03, 0.04, 0.04, 0.0…
## $ e_inc_tbhiv_100k_lo      <dbl> 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.0…
## $ e_inc_tbhiv_100k_hi      <dbl> 0.07, 0.08, 0.08, 0.09, 0.10, 0.12, 0.13, 0.1…
## $ e_inc_tbhiv_num          <dbl> 5, 5, 6, 7, 8, 9, 11, 13, 13, 14, 15, 15, 16,…
## $ e_inc_tbhiv_num_lo       <dbl> 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
## $ e_inc_tbhiv_num_hi       <dbl> 15, 16, 18, 21, 24, 28, 33, 37, 39, 42, 44, 4…
## $ e_mort_exc_tbhiv_100k    <dbl> 50.00, 55.00, 59.00, 68.00, 67.00, 66.00, 64.…
## $ e_mort_exc_tbhiv_100k_lo <dbl> 32.00, 37.00, 41.00, 48.00, 47.00, 47.00, 46.…
## $ e_mort_exc_tbhiv_100k_hi <dbl> 70.00, 76.00, 80.00, 92.00, 89.00, 88.00, 85.…
## $ e_mort_exc_tbhiv_num     <dbl> 10000, 11000, 13000, 15000, 16000, 16000, 160…
## $ e_mort_exc_tbhiv_num_lo  <dbl> 6500, 7600, 8700, 11000, 11000, 11000, 12000,…
## $ e_mort_exc_tbhiv_num_hi  <dbl> 14000, 15000, 17000, 21000, 21000, 21000, 220…
## $ e_mort_tbhiv_100k        <dbl> 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.0…
## $ e_mort_tbhiv_100k_lo     <dbl> 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.0…
## $ e_mort_tbhiv_100k_hi     <dbl> 0.05, 0.05, 0.05, 0.05, 0.06, 0.06, 0.07, 0.0…
## $ e_mort_tbhiv_num         <dbl> 3, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 8, …
## $ e_mort_tbhiv_num_lo      <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, …
## $ e_mort_tbhiv_num_hi      <dbl> 9, 9, 10, 12, 13, 15, 17, 17, 19, 21, 21, 21,…
## $ e_mort_100k              <dbl> 50.00, 55.00, 59.00, 68.00, 67.00, 66.00, 64.…
## $ e_mort_100k_lo           <dbl> 32.00, 37.00, 41.00, 48.00, 47.00, 47.00, 46.…
## $ e_mort_100k_hi           <dbl> 70.0, 76.0, 80.0, 92.0, 89.0, 88.0, 85.0, 79.…
## $ e_mort_num               <dbl> 10000, 11000, 13000, 15000, 16000, 16000, 160…
## $ e_mort_num_lo            <dbl> 6500, 7600, 8700, 11000, 11000, 11000, 12000,…
## $ e_mort_num_hi            <dbl> 14000, 15000, 17000, 21000, 21000, 21000, 220…
## $ cfr                      <dbl> 0.34, 0.32, 0.30, 0.32, 0.29, 0.28, 0.27, 0.2…
## $ cfr_lo                   <dbl> 0.19, 0.20, 0.19, 0.21, 0.20, 0.19, 0.18, 0.1…
## $ cfr_hi                   <dbl> 0.50, 0.46, 0.42, 0.44, 0.40, 0.38, 0.36, 0.3…
## $ cfr_pct                  <dbl> 34, 32, 30, 32, 29, 28, 27, 25, 25, 26, 25, 2…
## $ cfr_pct_lo               <dbl> 19, 20, 19, 21, 20, 19, 18, 17, 17, 18, 17, 1…
## $ cfr_pct_hi               <dbl> 50, 46, 42, 44, 40, 38, 36, 33, 34, 36, 34, 3…
## $ c_newinc_100k            <dbl> 35, 50, 65, 61, 78, 90, 100, 111, 107, 95, 99…
## $ c_cdr                    <dbl> 24, 29, 33, 28, 34, 38, 41, 46, 45, 42, 45, 4…
## $ c_cdr_lo                 <dbl> 2.3, 3.8, 5.6, 6.1, 9.1, 12.0, 15.0, 19.0, 19…
## $ c_cdr_hi                 <dbl> 77, 76, 78, 63, 72, 76, 81, 87, 84, 75, 81, 8…

Basic descriptive summary

##    country              iso2               iso3            iso_numeric   
##  Length:5347        Length:5347        Length:5347        Min.   :  4.0  
##  Class :character   Class :character   Class :character   1st Qu.:212.0  
##  Mode  :character   Mode  :character   Mode  :character   Median :430.0  
##                                                           Mean   :432.5  
##                                                           3rd Qu.:646.0  
##                                                           Max.   :894.0  
##                                                                          
##  g_whoregion             year        e_pop_num           e_inc_100k    
##  Length:5347        Min.   :2000   Min.   :1.552e+03   Min.   :   0.0  
##  Class :character   1st Qu.:2006   1st Qu.:7.594e+05   1st Qu.:  11.0  
##  Mode  :character   Median :2012   Median :5.963e+06   Median :  53.5  
##                     Mean   :2012   Mean   :3.350e+07   Mean   : 138.2  
##                     3rd Qu.:2018   3rd Qu.:2.163e+07   3rd Qu.: 181.0  
##                     Max.   :2024   Max.   :1.451e+09   Max.   :2700.0  
##                                                        NA's   :25      
##  e_inc_100k_lo     e_inc_100k_hi       e_inc_num        e_inc_num_lo      
##  Min.   :   0.00   Min.   :    0.0   Min.   :      0   Min.   :      0.0  
##  1st Qu.:   9.30   1st Qu.:   14.0   1st Qu.:    270   1st Qu.:    202.5  
##  Median :  40.00   Median :   69.0   Median :   3500   Median :   2500.0  
##  Mean   :  87.12   Mean   :  252.4   Mean   :  52875   Mean   :  33578.6  
##  3rd Qu.: 114.75   3rd Qu.:  276.0   3rd Qu.:  19000   3rd Qu.:  12000.0  
##  Max.   :2200.00   Max.   :23500.0   Max.   :3590000   Max.   :2620000.0  
##  NA's   :25        NA's   :25        NA's   :25        NA's   :25         
##   e_inc_num_hi      e_tbhiv_prct   e_tbhiv_prct_lo e_tbhiv_prct_hi
##  Min.   :      0   Min.   : 0.00   Mode:logical    Mode:logical   
##  1st Qu.:    340   1st Qu.: 1.10   NA's:5347       NA's:5347      
##  Median :   4500   Median : 5.00                                  
##  Mean   :  82710   Mean   :11.86                                  
##  3rd Qu.:  31000   3rd Qu.:15.00                                  
##  Max.   :7070000   Max.   :84.00                                  
##  NA's   :25        NA's   :895                                    
##  e_inc_tbhiv_100k  e_inc_tbhiv_100k_lo e_inc_tbhiv_100k_hi e_inc_tbhiv_num 
##  Min.   :   0.00   Min.   :  0.0       Min.   :   0.00     Min.   :     0  
##  1st Qu.:   0.27   1st Qu.:  0.1       1st Qu.:   0.48     1st Qu.:    18  
##  Median :   2.60   Median :  1.3       Median :   4.05     Median :   210  
##  Mean   :  38.03   Mean   : 17.3       Mean   :  70.23     Mean   :  7413  
##  3rd Qu.:  15.00   3rd Qu.:  7.8       3rd Qu.:  24.00     3rd Qu.:  2300  
##  Max.   :1320.00   Max.   :693.0       Max.   :4610.00     Max.   :466000  
##  NA's   :895       NA's   :895         NA's   :895         NA's   :895     
##  e_inc_tbhiv_num_lo e_inc_tbhiv_num_hi  e_mort_exc_tbhiv_100k
##  Min.   :     0     Min.   :      0.0   Min.   :   0.00      
##  1st Qu.:     8     1st Qu.:     31.8   1st Qu.:   1.20      
##  Median :   110     Median :    330.0   Median :   6.10      
##  Mean   :  3167     Mean   :  13921.2   Mean   :  22.22      
##  3rd Qu.:  1100     3rd Qu.:   3825.0   3rd Qu.:  27.00      
##  Max.   :220000     Max.   :1160000.0   Max.   :1210.00      
##  NA's   :895        NA's   :895         NA's   :815          
##  e_mort_exc_tbhiv_100k_lo e_mort_exc_tbhiv_100k_hi e_mort_exc_tbhiv_num
##  Min.   :  0.00           Min.   :   0.00          Min.   :     0      
##  1st Qu.:  1.10           1st Qu.:   1.30          1st Qu.:    52      
##  Median :  4.50           Median :   7.50          Median :   480      
##  Mean   : 14.21           Mean   :  32.55          Mean   :  8089      
##  3rd Qu.: 17.00           3rd Qu.:  39.00          3rd Qu.:  2800      
##  Max.   :765.00           Max.   :1760.00          Max.   :848000      
##  NA's   :815              NA's   :815              NA's   :815         
##  e_mort_exc_tbhiv_num_lo e_mort_exc_tbhiv_num_hi e_mort_tbhiv_100k
##  Min.   :     0          Min.   :      0         Min.   :  0.00   
##  1st Qu.:    43          1st Qu.:     57         1st Qu.:  0.06   
##  Median :   350          Median :    590         Median :  0.62   
##  Mean   :  5692          Mean   :  11078         Mean   : 14.50   
##  3rd Qu.:  1700          3rd Qu.:   3800         3rd Qu.:  5.00   
##  Max.   :567000          Max.   :1210000         Max.   :510.00   
##  NA's   :815             NA's   :815             NA's   :815      
##  e_mort_tbhiv_100k_lo e_mort_tbhiv_100k_hi e_mort_tbhiv_num e_mort_tbhiv_num_lo
##  Min.   :  0.000      Min.   :   0.00      Min.   :     0   Min.   :     0.0   
##  1st Qu.:  0.020      1st Qu.:   0.11      1st Qu.:     4   1st Qu.:     2.0   
##  Median :  0.300      Median :   1.10      Median :    55   Median :    26.5   
##  Mean   :  6.596      Mean   :  26.42      Mean   :  2914   Mean   :  1235.2   
##  3rd Qu.:  2.600      3rd Qu.:   8.60      3rd Qu.:   770   3rd Qu.:   370.0   
##  Max.   :224.000      Max.   :1620.00      Max.   :223000   Max.   :112000.0   
##  NA's   :815          NA's   :815          NA's   :815      NA's   :815        
##  e_mort_tbhiv_num_hi  e_mort_100k      e_mort_100k_lo   e_mort_100k_hi  
##  Min.   :     0      Min.   :   0.00   Min.   :  0.00   Min.   :   0.0  
##  1st Qu.:     8      1st Qu.:   0.85   1st Qu.:  0.67   1st Qu.:   1.0  
##  Median :    87      Median :   4.80   Median :  3.70   Median :   5.7  
##  Mean   :  5480      Mean   :  31.41   Mean   : 19.63   Mean   :  46.9  
##  3rd Qu.:  1300      3rd Qu.:  30.00   3rd Qu.: 21.00   3rd Qu.:  40.0  
##  Max.   :554000      Max.   :1320.00   Max.   :848.00   Max.   :1890.0  
##  NA's   :815         NA's   :25        NA's   :25       NA's   :25      
##    e_mort_num      e_mort_num_lo    e_mort_num_hi          cfr        
##  Min.   :      0   Min.   :     0   Min.   :      0   Min.   :0.0000  
##  1st Qu.:     22   1st Qu.:    17   1st Qu.:     27   1st Qu.:0.0700  
##  Median :    300   Median :   250   Median :    340   Median :0.1200  
##  Mean   :   9368   Mean   :  6398   Mean   :  13053   Mean   :0.1632  
##  3rd Qu.:   3200   3rd Qu.:  2175   3rd Qu.:   4100   3rd Qu.:0.2400  
##  Max.   :1040000   Max.   :707000   Max.   :1440000   Max.   :1.0000  
##  NA's   :25        NA's   :25       NA's   :25        NA's   :815     
##      cfr_lo           cfr_hi          cfr_pct         cfr_pct_lo    
##  Min.   :0.0000   Min.   :0.0000   Min.   :  0.00   Min.   : 0.000  
##  1st Qu.:0.0500   1st Qu.:0.0900   1st Qu.:  7.00   1st Qu.: 5.000  
##  Median :0.0800   Median :0.1600   Median : 12.00   Median : 8.000  
##  Mean   :0.0929   Mean   :0.2421   Mean   : 16.32   Mean   : 9.292  
##  3rd Qu.:0.1300   3rd Qu.:0.3600   3rd Qu.: 24.00   3rd Qu.:13.000  
##  Max.   :0.4400   Max.   :1.0000   Max.   :100.00   Max.   :44.000  
##  NA's   :815      NA's   :815      NA's   :815      NA's   :815     
##    cfr_pct_hi     c_newinc_100k        c_cdr           c_cdr_lo     
##  Min.   :  0.00   Min.   :  0.00   Min.   :  2.60   Min.   :  0.46  
##  1st Qu.:  9.00   1st Qu.:  9.90   1st Qu.: 51.00   1st Qu.: 34.00  
##  Median : 16.00   Median : 36.00   Median : 66.00   Median : 53.00  
##  Mean   : 24.21   Mean   : 73.06   Mean   : 66.16   Mean   : 50.94  
##  3rd Qu.: 36.00   3rd Qu.: 94.25   3rd Qu.: 81.00   3rd Qu.: 66.00  
##  Max.   :100.00   Max.   :947.00   Max.   :190.00   Max.   :160.00  
##  NA's   :815      NA's   :207      NA's   :364      NA's   :364     
##     c_cdr_hi      
##  Min.   :   4.10  
##  1st Qu.:  74.00  
##  Median :  90.00  
##  Mean   :  92.29  
##  3rd Qu.: 100.00  
##  Max.   :1600.00  
##  NA's   :364
## # A tibble: 1 × 4
##   n_rows n_countries year_min year_max
##    <int>       <int>    <dbl>    <dbl>
## 1   5347         217     2000     2024

Visualizations

Incidence histogram (color gradient)

## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

CDR histogram – colorful & clean

## Incidence vs mortality – colorful scatter by region

## `geom_smooth()` using formula = 'y ~ x'

CFR (%) over time by WHO region

## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

## Warning: Removed 815 rows containing missing values or values outside the scale range
## (`geom_line()`).

Incidence trend by region – filled ribbons (extra pretty)

prepare data

Overall summary table (gtsummary → gt)

Characteristic N = 2151
Incidence per 100,000 96.9 (142.1)
    Unknown 1
Mortality (HIV-negative) per 100,000 12.5 (19.7)
    Unknown 33
Case fatality ratio (%) 13.0 (9.8)
    Unknown 33
Case detection ratio (%) 76.0 (15.6)
    Unknown 22
1 Mean (SD)
Table 2. TB indicators by WHO region, 2024
Indicator N AFR
N = 47
1
AMR
N = 45
1
EMR
N = 22
1
EUR
N = 54
1
SEA
N = 10
1
WPR
N = 37
1
Incidence per 100,000 214 187.6 (132.7) 32.4 (40.3) 71.0 (117.7) 22.0 (30.3) 227.7 (162.0) 152.9 (217.7)
    Unknown
0 0 0 0 1 0
Mortality (HIV-negative) per 100,000 182 22.8 (16.4) 3.2 (3.7) 11.3 (27.5) 1.9 (2.9) 32.3 (26.2) 18.7 (27.0)
    Unknown
1 16 0 5 1 10
Case fatality ratio (%) 182 19.0 (5.6) 10.9 (6.8) 14.5 (20.5) 8.9 (5.4) 13.3 (6.3) 11.4 (7.2)
    Unknown
1 16 0 5 1 10
Case detection ratio (%) 193 70.4 (10.3) 81.9 (14.1) 71.0 (11.9) 82.1 (16.4) 68.0 (14.2) 73.1 (19.6)
    Unknown
1 11 1 2 1 6
1 Mean (SD)