R-根据条件启动和重置R中的计数列 [英] R - starting and resetting a counting column in R based on condition
问题描述
我要感谢预先提供的所有帮助,因为迄今为止的帮助使我对如何分析数据有了新的想法/假设.
I would like to thank for all the help already in advance, as the help until now has allowed me go get new ideas/hypotheses on how my data could be analysed.
数据
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.
Input
start
and stop
are the day-count. The daily treatment is listed in treatment
, with 0 = no treatment, which is an interruption, and 1:3 are treatment A/B/C.
假设是,一旦一个人中断治疗,他或她在接下来的30天内就很容易受到伤害.
The hypothesis is that once a person has had a treatment interruption, he or she is vulnerable for the next 30 days.
因此,基于这些输入,我想计算/计算以下输出:
So based on these inputs I would like to count/calculate the following outputs:
输出
vulnerable_period_30count
:当发生治疗中断(治疗(类型)= 0)时,它开始计数到30.当发生治疗中断时,它将自动重置.
vulnerable_period_30count
: when a treatment interruption occurs (treatment (type) = 0), it start counting to 30. It automatically resets when a treatment interruption occurs.
vulnerable_period_30count_3days
:仅当治疗中断持续三天(因此连续三个0)或更长时间时,中断才有意义.然后,它将开始计数到30.如果中断持续的时间超过三天,它将再次重置计数.注意:请参阅第6天,中断总共持续4天.当4天的中断结束后,计数将重置.
vulnerable_period_30count_3days
: only if a treatment interruption lasts for three days (thus three consecutive 0's) or longer, is the interruption relevant. Then, it will start counting to 30.
If the interruption last longer than the three days, it will reset the count again. NOTE: see day 6, the interruption lasts 4 days in total. The count resets when the 4 day interruption ended.
当计数超过30时,它将恢复为0,并且仅在再次发生相关中断时才开始计数.
When the count has exceeded 30, it reverts back to 0 and will only start counting when a relevant interruption occurred again.
这里尝试了易受攻击的_period_30计数.
Here the attempt for the vulnerable_period_30count.
尝试了脆弱的_period_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,2,3开头.我在最后一行中停止了计数.
The problem here that it start with 1, 2, 3 already. I hard-stop the count with the last line.
对于如何仅在发生三个或三个以上中断时才开始计数,我绝对不知道.
For how to only start count when three or more interruptions occured, i have absolutely no idea.
希望可以为您提供帮助
体重
对答案2发表评论@Ekoam再次感谢.代码现在可以运行了,这很好.我设法找到两个错误.我将用一种情况来说明:
Comment OP on Answer 2 @Ekoam Thanks again. The code now runs which is good. Two errors I managed to find. I will use one case to illustrate:
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, 31L, 32L, 33L, 34L, 35L, 36L,
37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L,
50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L, 60L, 61L, 62L,
63L, 64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L,
76L, 77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L, 86L, 87L, 88L,
89L, 90L, 91L, 92L, 93L, 94L, 95L, 96L, 97L, 98L, 99L, 100L,
101L, 102L, 103L, 104L, 105L, 106L, 107L, 108L, 109L, 110L, 111L,
112L, 113L, 114L, 115L, 116L, 117L, 118L, 119L, 120L, 121L, 122L,
123L, 124L, 125L, 126L, 127L, 128L, 129L, 130L, 131L, 132L, 133L,
134L, 135L, 136L, 137L, 138L, 139L, 140L, 141L, 142L, 143L, 144L,
145L, 146L, 147L, 148L, 149L, 150L, 151L, 152L, 153L, 154L, 155L,
156L, 157L, 158L, 159L, 160L, 161L, 162L, 163L, 164L, 165L, 166L,
167L, 168L, 169L, 170L, 171L, 172L, 173L, 174L, 175L, 176L, 177L,
178L, 179L, 180L, 181L, 182L, 183L, 184L, 185L, 186L, 187L, 188L,
189L, 190L, 191L, 192L, 193L, 194L, 195L, 196L, 197L, 198L, 199L,
200L, 201L, 202L, 203L, 204L, 205L, 206L, 207L, 208L, 209L, 210L,
211L, 212L, 213L, 214L, 215L, 216L, 217L, 218L, 219L, 220L, 221L,
222L, 223L, 224L, 225L, 226L, 227L, 228L, 229L, 230L, 231L, 232L,
233L, 234L, 235L, 236L, 237L, 238L, 239L, 240L, 241L, 242L, 243L,
244L, 245L, 246L, 247L, 248L, 249L, 250L, 251L, 252L, 253L, 254L,
255L, 256L, 257L, 258L, 259L, 260L, 261L, 262L, 263L, 264L, 265L,
266L, 267L, 268L, 269L, 270L, 271L, 272L, 273L, 274L, 275L, 276L,
277L, 278L, 279L, 280L, 281L, 282L, 283L, 284L, 285L, 286L, 287L,
288L, 289L, 290L, 291L, 292L, 293L, 294L, 295L, 296L, 297L, 298L,
299L, 300L, 301L, 302L, 303L, 304L, 305L, 306L, 307L, 308L, 309L,
310L, 311L, 312L, 313L, 314L, 315L, 316L, 317L, 318L, 319L, 320L,
321L, 322L, 323L, 324L, 325L, 326L, 327L, 328L, 329L, 330L, 331L,
332L, 333L, 334L, 335L, 336L, 337L, 338L, 339L, 340L, 341L, 342L,
343L, 344L, 345L, 346L, 347L, 348L, 349L, 350L, 351L, 352L, 353L,
354L, 355L, 356L, 357L, 358L, 359L, 360L, 361L, 362L, 363L, 364L,
365L, 366L, 367L, 368L, 369L, 370L, 371L, 372L, 373L, 374L, 375L,
376L, 377L, 378L, 379L, 380L, 381L, 382L, 383L, 384L, 385L, 386L,
387L, 388L, 389L, 390L, 391L, 392L, 393L, 394L, 395L, 396L, 397L,
398L, 399L, 400L, 401L, 402L, 403L, 404L, 405L, 406L, 407L, 408L,
409L, 410L, 411L, 412L, 413L, 414L, 415L, 416L, 417L, 418L, 419L,
420L, 421L, 422L, 423L, 424L, 425L, 426L, 427L, 428L, 429L, 430L,
431L, 432L, 433L, 434L, 1L), vulnerable_period_30count_3days = 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, 2L, 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, 31L, 32L, 33L, 34L, 35L, 36L, 37L,
38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L,
51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L, 60L, 61L, 62L, 63L,
64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L, 76L,
77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L, 86L, 87L, 88L, 89L,
90L, 91L, 92L, 93L, 94L, 95L, 96L, 97L, 98L, 99L, 100L, 101L,
102L, 103L, 104L, 105L, 106L, 107L, 108L, 109L, 110L, 111L, 112L,
113L, 114L, 115L, 116L, 117L, 118L, 119L, 120L, 121L, 122L, 123L,
124L, 125L, 126L, 127L, 128L, 129L, 130L, 131L, 132L, 133L, 134L,
135L, 136L, 137L, 138L, 139L, 140L, 141L, 142L, 143L, 144L, 145L,
146L, 147L, 148L, 149L, 150L, 151L, 152L, 153L, 154L, 155L, 156L,
157L, 158L, 159L, 160L, 161L, 162L, 163L, 164L, 165L, 166L, 167L,
168L, 169L, 170L, 171L, 172L, 173L, 174L, 175L, 176L, 177L, 178L,
179L, 180L, 181L, 182L, 183L, 184L, 185L, 186L, 187L, 188L, 189L,
190L, 191L, 192L, 193L, 194L, 195L, 196L, 197L, 198L, 199L, 200L,
201L, 202L, 203L, 204L, 205L, 206L, 207L, 208L, 209L, 210L, 211L,
212L, 213L, 214L, 215L, 216L, 217L, 218L, 219L, 220L, 221L, 222L,
223L, 224L, 225L, 226L, 227L, 228L, 229L, 230L, 231L, 232L, 233L,
234L, 235L, 236L, 237L, 238L, 239L, 240L, 241L, 242L, 243L, 244L,
245L, 246L, 247L, 248L, 249L, 250L, 251L, 252L, 253L, 254L, 255L,
256L, 257L, 258L, 259L, 260L, 261L, 262L, 263L, 264L, 265L, 266L,
267L, 268L, 269L, 270L, 271L, 272L, 273L, 274L, 275L, 276L, 277L,
278L, 279L, 280L, 281L, 282L, 283L, 284L, 285L, 286L, 287L, 288L,
289L, 290L, 291L, 292L, 293L, 294L, 295L, 296L, 297L, 298L, 299L,
300L, 301L, 302L, 303L, 304L, 305L, 306L, 307L, 308L, 309L, 310L,
311L, 312L, 313L, 314L, 315L, 316L, 317L, 318L, 319L, 320L, 321L,
322L, 323L, 324L, 325L, 326L, 327L, 328L, 329L, 330L, 331L, 332L,
333L, 334L, 335L, 336L, 337L, 338L, 339L, 340L, 341L, 342L, 343L,
344L, 345L, 346L, 347L, 348L, 349L, 350L, 351L, 352L, 353L, 354L,
355L, 356L, 357L, 358L, 359L, 360L, 361L, 362L, 363L, 364L, 365L,
366L, 367L, 368L, 369L, 370L, 371L, 372L, 373L, 374L, 375L, 376L,
377L, 378L, 379L, 380L, 381L, 382L, 383L, 384L, 385L, 386L, 387L,
388L, 389L, 390L, 391L, 392L, 393L, 394L, 395L, 396L, 397L, 398L,
399L, 400L, 401L, 402L, 403L, 404L, 405L, 406L, 407L, 408L, 409L,
410L, 411L, 412L, 413L, 414L, 415L, 416L, 417L, 418L, 419L, 420L,
421L, 422L, 423L, 424L, 425L, 426L, 427L, 428L, 429L, 430L, 431L,
432L, 433L, 434L, 435L, 1L)), 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 = c(NA, -1L), class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
-
在第66天或第67天,天数不会停止,而是继续计数.对于其他几个record_id,都将发生这种情况.
At day 66 or day 67 the day count does not stop, and continues counting. This occurs for several other record_id's as wlel.
在第36和38天,unabled_day_30_count开始计数过早.
At day 36 and 38, the vulnerable_day_30_count starts counting too soon.
尽管没有中断3天,但在最后一天,弱者_天_30_计数已经开始计数.
At the final day, the vulnerable_day_30_count start counting already, although there has not been an interruption of 3 days.
推荐答案
考虑如下函数:
# 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 %>%
mutate(
vulnerable_period_30count = conditional_count(`treatment (type)`, 1L),
vulnerable_period_30count_3days = conditional_count(`treatment (type)`, 3L)
)
输出(我仅使用的 df
有四个变量: record_id
, start
, stop
,处理(类型)
.其他变量已删除.)
Output (the df
I used only has four variables: record_id
, start
, stop
, treatment (type)
. Other variables were removed.)
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)
}
此错误很可能是由于没有这样的零满足您的上述条件.因此,p0的长度为0.我们可以再添加一个if-else语句来处理此边界条件.尝试使用上面显示的代码.如果仍然无法使用,请考虑使用 dput(df [record_id == *,])
之类的内容来更新您的问题,其中 *
代表不稳定的组(例如,110005这种情况).
This error is likely due to no such zero satisfying your conditions stated above. Hence, p0 is of length 0. We can add one more if-else statement to handle this boundary condition. Try with the code shown above. If it's still not working, please consider updating your problem with something like dput(df[record_id == *, ])
, where *
represents the erratic group (i.e. 110005 in this case).
更新2
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)
}
我设法使用一些模拟数据来重现您的问题.该错误也是由边界条件引起的.当代码尝试验证序列p0-1,p0-2 ...时,如果向量治疗(类型)
的开头为零,则它可能变为负数.我已经纠正了那部分.尝试使用上面更新的代码.
I managed to reproduce your problem using some simulated data. The error is also caused by a boundary condition. When the code tries to verify the sequence p0 - 1, p0 - 2, ..., it may go into negative if there is a zero at the beginning of the vector treatment (type)
. I have corrected that part. Try with the updated code above.
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)
}
尝试这个新的.我重新设计了一些逻辑.我以前曾假设只有最后一个有效零的计数可以超过30天.这就是为什么计数永远不会在有效零之间停止的原因.此外,未将所得矢量分配给正确位置.此错误还会创建您观察到的一些异常.我都纠正了.结果现在看起来像这样
Try with this new one. I reworked some logics. I previously assumed that only the count for the last valid zero can go beyond 30 days. That's why the count never stops for in-between valid zeros. Furthermore, the resultant vector was not assigned to the correct position. This bug also creates some anomalies you have observed. I have corrected both. The result now looks like this
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"
))
这篇关于R-根据条件启动和重置R中的计数列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!