Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-根据条件启动和重置R中的计数列_R_Dplyr_Counting - Fatal编程技术网

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

  • 在第66天或第67天,日计数不会停止,而是继续计数。对于其他几个记录id,如wlel,会发生这种情况

  • 在第36天和第38天,脆弱的第30天计数开始计算得太快

  • 在最后一天,脆弱的第30天计数已经开始计数,尽管没有中断3天


  • 考虑这样一个函数:

    # 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()
    input
    vulnerable\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"
    ))