generated from opensafely/research-template
/
crude_rates_standardise.R
46 lines (40 loc) · 1.57 KB
/
crude_rates_standardise.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
## ###########################################################
## This script:
## - Imports the crude mortality rates calculated by the Measures framework
## - Standardises the rates to 30 days per month and per 100.000 individuals
## linda.nab@thedatalab.com - 2022028
## ###########################################################
# Load libraries & functions ---
library(here)
library(readr)
library(lubridate)
library(dplyr)
# Import rates ---
crude_rates <-
read_csv(file = here("output", "joined", "measure_crude_mortality_rate.csv"))
crude_rates_per_agegroup <-
read_csv(file = here("output", "joined", "measure_age_mortality_rate.csv"))
# Standardise rates ---
## Add column containing number of days in every month
crude_rates <-
crude_rates %>%
mutate(days_in_month = days_in_month(date))
crude_rates_per_agegroup <-
crude_rates_per_agegroup %>%
mutate(days_in_month = days_in_month(date))
## Standardise monthly rates to 30 days per month and per 100.000 individuals
crude_rates <-
crude_rates %>%
mutate(std_value = (value / days_in_month * 30) * 100000) %>%
select(date, std_value)
crude_rates_per_agegroup <-
crude_rates_per_agegroup %>%
mutate(std_value = (value / days_in_month * 30) * 100000) %>%
select(date, sex, agegroup, std_value)
# Save output ---
output_dir <- here("output", "rates")
ifelse(!dir.exists(output_dir), dir.create(output_dir), FALSE)
write_csv(x = crude_rates,
path = paste0(output_dir, "/crude_monthly_std.csv"))
write_csv(x = crude_rates_per_agegroup,
path = paste0(output_dir, "/crude_per_agegroup_monthly_std.csv"))