generated from opensafely/research-template
/
discharge_adm_after_pos_test.R
74 lines (64 loc) · 2.57 KB
/
discharge_adm_after_pos_test.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
################################################################################
#
# Description: This script reports number of hospitalisation after +ve test
#
# Input: /output/data/data_processed_clean.rds
#
# Output: /output/coverage/table_admitted_after_pos_test.csv
#
# Author(s): L Nab
# Date created: 08/09/2022
#
################################################################################
# Preliminaries ----
## Import libraries
library(readr)
library(dplyr)
## Import input
data_processed_clean <-
read_rds(here::here("output", "data", "data_processed_clean.rds")) %>%
filter(elig_start >= as.Date("2021-12-11") & elig_start <= as.Date("2022-04-28")) %>%
mutate(# if someone is admitted to hospital after their pos test,
# they're not eligible for treatment anymore.
no_days_admitted_after_pos_test =
ifelse(hospital_admission_date_after_eligible > elig_start,
difftime(hospital_admission_date_after_eligible, elig_start,
units = "days") %>% as.numeric(),
NA_integer_))
## Make an overview
## number of people admitted to hospital after post test on day 1, 2, 3, 4
## NB: number in (ELIGIBLE + NOT TREATED) population
data_processed_clean %>%
filter(!is.na(no_days_admitted_after_pos_test)) %>%
nrow() %>% print()
data_processed_clean %>%
filter(!is.na(no_days_admitted_after_pos_test)) %>%
pull(no_days_admitted_after_pos_test) %>%
quantile() %>% print()
overview_n_admitted_after_pos_test <-
data_processed_clean %>%
filter(eligibility_status == "Eligible",
is.na(treatment_date),
between(no_days_admitted_after_pos_test, 1, 4)) %>%
group_by(no_days_admitted_after_pos_test) %>%
summarise(n = n())
# add total number of people in (ELIGIBLE x NOT TREATED) pop
overview_n_admitted_after_pos_test <-
overview_n_admitted_after_pos_test %>%
mutate(no_days_admitted_after_pos_test =
no_days_admitted_after_pos_test %>% as.character()) %>%
add_row(no_days_admitted_after_pos_test = "Total population",
n = data_processed_clean %>%
filter(eligibility_status == "Eligible",
is.na(treatment_date)) %>%
nrow()
)
## Redact output
overview_n_admitted_after_pos_test <-
overview_n_admitted_after_pos_test %>%
mutate(n = ifelse(n <= 5 & n > 0, "[REDACTED]", n %>% as.character()))
## Save output
fs::dir_create(here::here("output", "coverage"))
write_csv(
overview_n_admitted_after_pos_test,
here::here("output", "coverage", "table_admitted_after_pos_test.csv"))