-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathchurn_3_stack.R
More file actions
104 lines (85 loc) · 3.58 KB
/
Copy pathchurn_3_stack.R
File metadata and controls
104 lines (85 loc) · 3.58 KB
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
94
95
96
97
98
99
100
101
102
103
104
###########################################################################
#
# Project: How to handle churn
#
# Purpose: Stack results
#
# Author: Jacqueline Rudolph
#
# Last Update: 29 Sep 2025
#
###########################################################################
library("tidyverse")
risk_all <- NULL
rate_all <- NULL
for (model in c("dag1", "dag2.1", "dag2.2", "dag2.3", "dag2.4",
"dag3", "dag3.1", "dag3.2", "dag3.3",
"dag4", "dag4.1")) {
for (outcome in c("transient", "permanent", "repeated")) {
# Risk
risk1 <- read_csv(paste0("../results/", model, "/", model, "_", outcome, "_risk_all.csv")) %>%
rename(t = time) %>%
select(rep, t, truth, censor, gap_allt, gap_1t)
risk2 <- read_csv(paste0("../results/", model, "/", model, "_", outcome, "_wt_all.csv")) %>%
filter(estimand=="risk") %>%
select(rep, t, censor_us, censor_s, obs_wt)
risk3 <- read_csv(paste0("../results/", model, "/", model, "_", outcome, "_mi_all.csv")) %>%
filter(estimand=="risk") %>%
select(rep, t, mi)
risk <- left_join(risk1, risk2, by=c("rep", "t")) %>%
left_join(risk3, by=c("rep", "t"))
# Rate
rate1 <- read_csv(paste0("../results/", model, "/", model, "_", outcome, "_rate_all.csv")) %>%
rename(truth = rate_truth,
censor = rate_censor,
gap_allt = rate_gap1,
gap_1t = rate_gap2) %>%
filter(t==10) %>%
select(rep, truth, censor, gap_allt, gap_1t)
rate2 <- read_csv(paste0("../results/", model, "/", model, "_", outcome, "_wt_all.csv")) %>%
filter(estimand=="rate") %>%
select(rep, censor_us, censor_s, obs_wt)
rate3 <- read_csv(paste0("../results/", model, "/", model, "_", outcome, "_mi_all.csv")) %>%
filter(estimand=="rate") %>%
select(rep, mi)
rate <- left_join(rate1, rate2, by="rep") %>%
left_join(rate3, by="rep")
if (model %in% c("dag3", "dag3.1", "dag3.2", "dag3.3",
"dag4", "dag4.1")) {
risk4 <- read_csv(paste0("../results/", model, "/", model, "_", outcome, "_wt-z_all.csv")) %>%
filter(estimand=="risk") %>%
rename(censor_us_z = censor_us,
censor_s_z = censor_s,
obs_wt_z = obs_wt) %>%
select(rep, t, censor_us_z, censor_s_z, obs_wt_z)
risk5 <- read_csv(paste0("../results/", model, "/", model, "_", outcome, "_mi-z_all.csv")) %>%
filter(estimand=="risk") %>%
rename(mi_z = mi) %>%
select(rep, t, mi_z)
risk <- left_join(risk, risk4, by=c("rep", "t")) %>%
left_join(risk5, by=c("rep", "t"))
rate4 <- read_csv(paste0("../results/", model, "/", model, "_", outcome, "_wt-z_all.csv")) %>%
filter(estimand=="rate") %>%
rename(censor_us_z = censor_us,
censor_s_z = censor_s,
obs_wt_z = obs_wt) %>%
select(rep, censor_us_z, censor_s_z, obs_wt_z)
rate5 <- read_csv(paste0("../results/", model, "/", model, "_", outcome, "_mi-z_all.csv")) %>%
filter(estimand=="rate") %>%
rename(mi_z = mi) %>%
select(rep, mi_z)
rate <- left_join(rate, rate4, by="rep") %>%
left_join(rate5, by="rep")
}
risk <- risk %>%
mutate(dag = model,
outcome = outcome)
risk_all <- bind_rows(risk_all, risk)
rate <- rate %>%
mutate(dag = model,
outcome = outcome)
rate_all <- bind_rows(rate_all, rate)
}
}
write_csv(risk_all, "./results/risk.csv")
write_csv(rate_all, "./results/rate.csv")