-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_targets.r
93 lines (80 loc) · 2.13 KB
/
_targets.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
84
85
86
87
88
89
90
91
92
93
# README
# target script file - configure and define the pipeline
# pkgs req to define the pipeline ----
library("targets")
library("tarchetypes")
# targets options ----
tar_option_set(
packages = NULL, # renv?
format = "auto" # use "qs" storage format
)
# *****************************************************************************
# development (test) or production ----
# *****************************************************************************
dev_run <- TRUE
if (!rlang::is_logical(dev_run)) {
stop("dev_run must be of type logical")
}
areas_path <- here::here("data", "app_input_files", "area_names_and_codes.csv")
areas_all <- readr::read_csv(areas_path) |>
dplyr::pull(cd)
areas_test <- c(
"E07000235", # 1
"E08000026", # 2
"E09000030", # 3
"E92000001" # 4
)
vars_all <- c(
"hpp", # 1
"lpp", # 2
"php", # 3
"plp", # 4
"hhh", # 5
"lll", # 6
"lhl", # 7
"hlh", # 8
"principal_proj", # 9
"var_proj_high_intl_migration", # 10
"var_proj_low_intl_migration" # 11
)
param_areas <- if (rlang::is_true(dev_run)) areas_test else areas_all
param_by <- 2022L
param_ey <- if (rlang::is_true(dev_run)) seq(2025L, 2040L, 5L) else seq(2025L, 2040L, 5L)
param_vars <- vars_all
param_draws <- if (rlang::is_true(dev_run)) 1e2 else 1e3
param_rng <- 014796
# example of testing 'crossing' pattern for dynamic branching
tar_pattern(
cross(param_areas, param_by, param_ey, param_vars),
param_areas = length(param_areas),
param_by = length(param_by),
param_ey = length(param_ey),
param_vars = length(param_vars)
)
# example showing how patterns are composable
tar_pattern(
cross(
param_areas, param_by, param_ey, param_vars,
map(param_draws, param_rng)
),
param_areas = length(param_areas),
param_by = length(param_by),
param_ey = length(param_ey),
param_vars = length(param_vars),
param_draws = 1,
param_rng = 1
)
# load custom fns ----
fs::dir_ls(here::here("R"), glob = "*.r") |>
purrr::walk(source)
# pipeline ----
# modularized
list(
read_pop_data,
read_geo_data,
read_act_data,
build_pop_series, # watch name clash!
build_pop_inputs,
build_act_inputs,
build_res_inputs
)