我有以下Tibble:
mydata <- structure(list(Nr = 1:10, sgv = c(72L, 72L, 68L, 62L, 83L, 83L,
86L, 86L, 85L, 85L), Date = structure(c(1605969695, 1605969700.306,
1605970000.593, 1605970300.593, 1605970595, 1605970600.594, 1605970895,
1605970900.417, 1605971195, 1605971200.243), tzone = "CET", class = c("POSIXct",
"POSIXt")), Year = c(2020, 2020, 2020, 2020, 2020, 2020, 2020,
2020, 2020, 2020), Weekday = c(7, 7, 7, 7, 7, 7, 7, 7, 7, 7),
Week = c(47, 47, 47, 47, 47, 47, 47, 47, 47, 47), mmol = c(3.996,
3.996, 3.774, 3.441, 4.6065, 4.6065, 4.773, 3.8, 4.7175,
4.7175), check_time = structure(c(294.695000171661, 5.30599999427795,
300.286999940872, 300, 294.40700006485, 5.5939998626709,
294.406000137329, 5.41700005531311, 294.582999944687, 5.24300003051758
), class = "difftime", units = "secs"), below = c(FALSE,
FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE
)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))
# A tibble: 10 × 9
Nr sgv Date Year Weekday Week mmol check_time below
<int> <int> <dttm> <dbl> <dbl> <dbl> <dbl> <drtn> <lgl>
1 1 72 2020-11-21 15:41:35 2020 7 47 4.00 294.695 secs FALSE
2 2 72 2020-11-21 15:41:40 2020 7 47 4.00 5.306 secs FALSE
3 3 68 2020-11-21 15:46:40 2020 7 47 3.77 300.287 secs TRUE
4 4 62 2020-11-21 15:51:40 2020 7 47 3.44 300.000 secs TRUE
5 5 83 2020-11-21 15:56:35 2020 7 47 4.61 294.407 secs FALSE
6 6 83 2020-11-21 15:56:40 2020 7 47 4.61 5.594 secs FALSE
7 7 86 2020-11-21 16:01:35 2020 7 47 4.77 294.406 secs FALSE
8 8 86 2020-11-21 16:01:40 2020 7 47 3.8 5.417 secs TRUE
9 9 85 2020-11-21 16:06:35 2020 7 47 4.72 294.583 secs FALSE
10 10 85 2020-11-21 16:06:40 2020 7 47 4.72 5.243 secs FALSE
我的目标是计算每组真值的总时间(CHECK_TIME之和).我的数据框中大约有600000行,真实值以1、2、3或更多为一组出现. 为此,我想用一个标识符对True值进行编号,其中所有分组的True值都具有相同的标识符.上面的示例应该如下所示:
Nr sgv Date Year Weekday Week mmol check_time below ID
<int> <int> <dttm> <dbl> <dbl> <dbl> <dbl> <drtn> <lgl> <dbl>
1 1 72 2020-11-21 15:41:35 2020 7 47 4.00 294.695 secs FALSE NA
2 2 72 2020-11-21 15:41:40 2020 7 47 4.00 5.306 secs FALSE NA
3 3 68 2020-11-21 15:46:40 2020 7 47 3.77 300.287 secs TRUE 1
4 4 62 2020-11-21 15:51:40 2020 7 47 3.44 300.000 secs TRUE 1
5 5 83 2020-11-21 15:56:35 2020 7 47 4.61 294.407 secs FALSE NA
6 6 83 2020-11-21 15:56:40 2020 7 47 4.61 5.594 secs FALSE NA
7 7 86 2020-11-21 16:01:35 2020 7 47 4.77 294.406 secs FALSE NA
8 8 86 2020-11-21 16:01:40 2020 7 47 3.8 5.417 secs TRUE 2
9 9 85 2020-11-21 16:06:35 2020 7 47 4.72 294.583 secs FALSE NA
10 10 85 2020-11-21 16:06:40 2020 7 47 4.72 5.243 secs FALSE NA