R-根据条件启动和重置R中的计数列
我要感谢所有提前提供的帮助,因为到目前为止,这些帮助使我能够获得关于如何分析我的数据的新想法/假设 数据R-根据条件启动和重置R中的计数列,r,dplyr,counting,R,Dplyr,Counting,我要感谢所有提前提供的帮助,因为到目前为止,这些帮助使我能够获得关于如何分析我的数据的新想法/假设 数据 structure(list(record_id = c(110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101, 11010
structure(list(record_id = c(110101, 110101, 110101, 110101,
110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101,
110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101,
110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101,
110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101,
110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101,
110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101,
110101, 110101, 110101, 110101, 110101, 110101, 110101, 110101
), start = c(0, 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), stop = c(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), `treatment (type)` = c(1,
1, 1, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 3, 3, 0, 3, 3, 3,
0, 2, 2, 2, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), vulnerable_period_30count = c(0,
0, 0, 1, 1, 1, 1, 2, 3, 4, 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 3, 4,
1, 2, 3, 4, 1, 1, 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, 0, 0), vulnerable_period_yn = c(0, 0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 0, 0), vulnerable_period_30count_3days = c(0,
0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 1, 1, 1, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 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, 0, 0), vulnerable_period_3days_yn = c(0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 11, 1, 1, 1, 1, 1, 1, 1, 0, 0)), row.names = c(NA, -60L
), class = c("tbl_df", "tbl", "data.frame"))
解释
输入
开始
和停止
是天数。每日治疗在治疗中列出,0=不治疗,这是一种中断,1:3是治疗A/B/C
这一假设是,一旦一个人的治疗中断,他或她在接下来的30天内都很脆弱
因此,基于这些输入,我想计算以下输出:
输出
脆弱期\u 30计数
:当发生治疗中断(治疗(类型)=0)时,它开始计数到30。当治疗中断时,它会自动复位
脆弱期\u 30计数\u 3天
:仅当治疗中断持续三天(因此连续三个0)或更长时间时,中断才相关。然后,它将开始计数到30。
如果中断持续时间超过三天,它将再次重置计数。注:见第6天,中断总共持续4天。当4天中断结束时,计数重置
当计数超过30时,它将恢复为0,并且仅在相关中断再次发生时才开始计数
此处为易受攻击时间段的尝试计数
尝试进行易受攻击的\u期间\u 30计数
data$vulnerable_period_30count <- data %>%
group_by(record_id, idx = cumsum(`treatment (type)` == 0L)) %>%
mutate(counter = row_number()) %>%
ungroup %>%
select(-idx)
data$test[data$test >30] <- 0
考虑这样一个函数:
# 1. Determine the positions of zeros (p0) in `x`.
# 2. Test whether p0 - 1, p0 - 2, ..., p0 - n + 1 are zeros;
# reduce p0 to those that satisfy all conditions.
# 3. Find the upper bounds (ub). For example, if p0 = c(1,2,3),
# then upper bounds will be c(2,3,?) (i.e. lead p0).
# ? is then 3 + 30 (the max you set) if it is still within
# the length of `x`; otherwise is the length of `x` plus 1.
# 4. Compute the sequence between each pair of p0 and ub and
# then unlist the result to a vector.
# 5. Assign the vector back to its correct position.
conditional_count <- function(x, n, max = 30L) {
len <- length(x); out <- integer(len)
p0 <- which(x == 0L)
if (n > 1L)
p0 <- Reduce(function(idx, i) idx[x[(idx - i + 1L)] == 0L], seq_len(n)[-1L], p0)
ub <- c(tail(p0, -1L), min(len + 1L, tail(p0, 1L) + max))
res <- unlist(lapply(ub - p0, seq_len))
`[<-`(out, p0[[1L]] + seq.int(0L, length(res) - 1L), res)
}
输出(我使用的df
只有四个变量:record\u id
,start
,stop
,治疗(类型)
。其他变量已删除。)
更新
conditional_count <- function(x, n, max = 30L) {
len <- length(x); out <- integer(len)
p0 <- which(x == 0L)
if (n > 1L)
p0 <- Reduce(function(idx, i) idx[x[(idx - i + 1L)] == 0L], seq_len(n)[-1L], p0)
if (length(p0) < 1L)
return(out)
ub <- c(tail(p0, -1L), min(len + 1L, tail(p0, 1L) + max))
res <- unlist(lapply(ub - p0, seq_len))
`[<-`(out, p0[[1L]] + seq.int(0L, length(res) - 1L), res)
}
我用一些模拟数据再现了你的问题。该误差也是由边界条件引起的。当代码尝试验证序列p0-1,p0-2,…,如果向量治疗(类型)
开始处为零,则可能变为负值。我已经改正了那部分。尝试使用上面更新的代码
更新3
请显示您的最佳尝试代码。@G.Grothendieck-请参见上文中的滚动30天计数尝试。对于3天标准的中断计数,我完全不知道(还没有)谢谢你的帮助!在上面提供的示例中,代码工作得非常好。然而,在一个更大的数据集中,我收到了这个错误<代码>错误:mutate()输入有问题。\u period\u 30count。下标超出范围ℹ 输入易损周期计数为条件计数(oac,1L)。ℹ 错误发生在组5中:记录id=110005。运行rlang::last_error()查看错误发生的位置。较大的数据集大约有480000个观察值。这是不是太多了?嗨@ekoam,我用你的代码尝试了以下代码:``测试oac ev_每日%group_by(记录id)%>%mutate(易受攻击的时段数=30天=有条件的时段数(oac_类,1L),易受攻击的时段数=30天=有条件的时段数(oac_类,3L))``带有:``类(oac_ev_每日$oac_类)````数值。范围为0-3。这是错误:错误:
mutate()
inputvulnerable\u period\u 30count\u 3days
。仅x 0可与负下标混合ℹ 输入<代码>易受攻击的\u期间\u 30计数\u 3天是<代码>有条件的\u计数(oac \u类,3L)。ℹ 组1中出现错误:记录\u id=110001。这是否更清楚一点?如果这还不够,我将尝试给出110001或110005的dput。然而,清单相当广泛(730次观察)。我们将看看它是否合适。否则,如果不适合,是否有可能发送电子邮件?Hi@ekoam。非常感谢,代码现在运行良好。这是我所不知道的。如果你有时间和兴趣解决类似的问题,我想请你看看这个问题:那篇文章已经有了一个公认的答案。你还指望什么@KBChu
df %>%
mutate(
vulnerable_period_30count = conditional_count(`treatment (type)`, 1L),
vulnerable_period_30count_3days = conditional_count(`treatment (type)`, 3L)
)
record_id start stop treatment (type) vulnerable_period_30count vulnerable_period_30count_3days
1 110101 0 1 1 0 0
2 110101 1 2 1 0 0
3 110101 2 3 1 0 0
4 110101 3 4 0 1 0
5 110101 4 5 0 1 0
6 110101 5 6 0 1 1
7 110101 6 7 0 1 1
8 110101 7 8 2 2 2
9 110101 8 9 2 3 3
10 110101 9 10 2 4 4
11 110101 10 11 0 1 5
12 110101 11 12 0 1 6
13 110101 12 13 0 1 1
14 110101 13 14 0 1 1
15 110101 14 15 0 1 1
16 110101 15 16 0 1 1
17 110101 16 17 3 2 2
18 110101 17 18 3 3 3
19 110101 18 19 0 1 4
20 110101 19 20 3 2 5
21 110101 20 21 3 3 6
22 110101 21 22 3 4 7
23 110101 22 23 0 1 8
24 110101 23 24 2 2 9
25 110101 24 25 2 3 10
26 110101 25 26 2 4 11
27 110101 26 27 0 1 12
28 110101 27 28 0 1 13
29 110101 28 29 0 1 1
30 110101 29 30 1 2 2
31 110101 30 31 1 3 3
32 110101 31 32 1 4 4
33 110101 32 33 1 5 5
34 110101 33 34 1 6 6
35 110101 34 35 1 7 7
36 110101 35 36 1 8 8
37 110101 36 37 1 9 9
38 110101 37 38 1 10 10
39 110101 38 39 1 11 11
40 110101 39 40 1 12 12
41 110101 40 41 1 13 13
42 110101 41 42 1 14 14
43 110101 42 43 1 15 15
44 110101 43 44 1 16 16
45 110101 44 45 1 17 17
46 110101 45 46 1 18 18
47 110101 46 47 1 19 19
48 110101 47 48 1 20 20
49 110101 48 49 1 21 21
50 110101 49 50 1 22 22
51 110101 50 51 1 23 23
52 110101 51 52 1 24 24
53 110101 52 53 1 25 25
54 110101 53 54 1 26 26
55 110101 54 55 1 27 27
56 110101 55 56 1 28 28
57 110101 56 57 1 29 29
58 110101 57 58 1 30 30
59 110101 58 59 1 0 0
60 110101 59 60 1 0 0
conditional_count <- function(x, n, max = 30L) {
len <- length(x); out <- integer(len)
p0 <- which(x == 0L)
if (n > 1L)
p0 <- Reduce(function(idx, i) idx[x[(idx - i + 1L)] == 0L], seq_len(n)[-1L], p0)
if (length(p0) < 1L)
return(out)
ub <- c(tail(p0, -1L), min(len + 1L, tail(p0, 1L) + max))
res <- unlist(lapply(ub - p0, seq_len))
`[<-`(out, p0[[1L]] + seq.int(0L, length(res) - 1L), res)
}
conditional_count <- function(x, n, max = 30L) {
len <- length(x); out <- integer(len)
p0 <- which(x == 0L)
if (n > 1L)
p0 <- Reduce(function(idx, i) {
lidx <- idx - i + 1L; lidx <- lidx[lidx > 0L]
idx[x[lidx] == 0L]
}, seq_len(n)[-1L], p0)
if (length(p0) < 1L)
return(out)
ub <- c(tail(p0, -1L), min(len + 1L, tail(p0, 1L) + max))
res <- unlist(lapply(ub - p0, seq_len))
`[<-`(out, p0[[1L]] + seq.int(0L, length(res) - 1L), res)
}
conditional_count <- function(x, n, max = 30L) {
len <- length(x); out <- integer(len)
p0 <- which(x == 0L)
if (n > 1L)
p0 <- Reduce(function(idx, i) {
lidx <- idx - i + 1L
idx <- idx[lidx > 0L]; lidx <- lidx[lidx > 0L]
idx[x[lidx] == 0L]
}, seq_len(n)[-1L], p0)
if (length(p0) < 1L)
return(out)
ub <- pmin(c(tail(p0, -1L), len), p0 + max - 1L)
rl <- ub - p0 + 1L
res <- unlist(lapply(rl, seq_len))
pos <- inverse.rle(list(lengths = rl, values = p0)) + res - 1L
`[<-`(out, pos, res)
}
structure(list(record_id = c(110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003, 110003, 110003, 110003,
110003, 110003, 110003, 110003, 110003), day_count = c(0, 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, 105, 106, 107, 108, 109, 110, 111, 112,
113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
464, 465, 466, 467, 468, 469, 470, 471, 472), day_count_stop = c(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, 105, 106, 107, 108, 109, 110, 111, 112,
113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
464, 465, 466, 467, 468, 469, 470, 471, 472, 473), oac_class = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 0), vulnerable_period_30count = c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L,
11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L,
24L, 25L, 26L, 27L, 28L, 29L, 30L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L), vulnerable_period_30count_3days = c(0L,
0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L,
11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L,
24L, 25L, 26L, 27L, 28L, 29L, 30L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), row.names = c(NA,
-473L), groups = structure(list(record_id = 110003, .rows = structure(list(
1:473), ptype = integer(0), class = c("vctrs_list_of", "vctrs_vctr",
"list"))), row.names = 1L, class = c("tbl_df", "tbl", "data.frame"
), .drop = TRUE), class = c("grouped_df", "tbl_df", "tbl", "data.frame"
))