generated from opensafely/research-template
/
table_1.R
83 lines (69 loc) · 2.7 KB
/
table_1.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
75
76
77
78
79
80
81
82
83
######################################
# This script:
# - Produces counts of patients prescribed antipsychotic by demographic characteristics between prior to April 2021.
# - saves data summaries (as table)
######################################
# Preliminaries ----
## Import libraries
library('tidyverse')
library('lubridate')
library('reshape2')
library('here')
library('gt')
library('gtsummary')
## Create output directory
dir.create(here::here("output", "tables"), showWarnings = FALSE, recursive=TRUE)
## Custom functions
source(here("analysis", "lib", "custom_functions.R"))
# Read in and format data ----
data_cohort <- read_rds(here::here("output", "data", "data_processed.rds"))
## Counts
counts_table1 <- data_cohort %>%
mutate(ethnicity = as.character(ethnicity),
ethnicity = ifelse(is.na(ethnicity), "Missing", ethnicity),
ethnicity = fct_case_when(
ethnicity == "White" ~ "White",
ethnicity == "Mixed" ~ "Mixed",
ethnicity == "Asian or Asian British" ~ "Asian or Asian British",
ethnicity == "Black or Black British" ~ "Black or Black British",
ethnicity == "Other ethnic groups" ~ "Other ethnic groups",
ethnicity == "Unknown" ~ "Unknown",
ethnicity == "Missing" ~ "Missing",
#TRUE ~ "Unknown"
TRUE ~ NA_character_),
imd = na_if(imd, "0"),
imd = fct_case_when(
imd == 1 ~ "1 most deprived",
imd == 2 ~ "2",
imd == 3 ~ "3",
imd == 4 ~ "4",
imd == 5 ~ "5 least deprived",
#TRUE ~ "Unknown",
TRUE ~ NA_character_
),
region = fct_case_when(
region == "London" ~ "London",
region == "East" ~ "East of England",
region == "East Midlands" ~ "East Midlands",
region == "North East" ~ "North East",
region == "North West" ~ "North West",
region == "South East" ~ "South East",
region == "South West" ~ "South West",
region == "West Midlands" ~ "West Midlands",
region == "Yorkshire and The Humber" ~ "Yorkshire and the Humber",
#TRUE ~ "Unknown",
TRUE ~ NA_character_)) %>%
mutate(ageband = cut(age,
breaks = c(0, 17, 24, 34, 44, 54, 69, 79, Inf),
labels = c("0-17", "18-24", "25-34", "35-44", "45-54", "55-69", "70-79", "80+"),
right = FALSE)) %>%
select(antipsychotic,
ageband,
sex,
region,
imd,
ethnicity) %>%
tbl_summary(by = antipsychotic) %>%
add_overall()
# Save table 1 ----
write_csv(counts_table1$table_body, here::here("output", "tables", "table1.csv"))