ex <- structure(list(group = c(1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
2, 2, 2, 2, 2), timestamp = structure(c(1504975114, 1504975115,
1504975116, 1504975116, 1504975121, 1504975121, 1504975121, 1504975121,
1504963482, 1504963486, 1504963486, 1504964343, 1504964343, 1504964394,
1504964394, 1504964394, 1504964394), class = c("POSIXct", "POSIXt"
), tzone = "UTC"), subgroup = c(36L, 36L, 36L, 35L, 36L, 35L,
35L, 36L, 43L, 43L, 14L, 14L, 14L, 14L, 14L, 43L, 43L), A = c(1L,
49L, 1L, 74L, 12L, 61L, 5L, 5L, 1L, 30L, 30L, 18L, 19L, 32L,
40L, 32L, 40L), B = c(1L, 1L, 0L, 1L, 1L, 1L, 0L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L)), .Names = c("group", "timestamp",
"subgroup", "A", "B"), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -17L))
У меня есть данные, как указано выше.Я хочу отсортировать данные в пределах group
по отметке времени, но также обратите внимание на то, как обрабатываются связи в отметке времени.Точнее говоря, если два наблюдения имеют одну и ту же временную метку, я бы хотел, чтобы первым было это наблюдение, которое имеет тот же subgroup
id, что и значение из предыдущей временной метки.Таким образом, желаемый результат будет выглядеть следующим образом:
# A tibble: 17 x 5
group timestamp subgroup A B
<dbl> <dttm> <int> <int> <int>
1 1.00 2017-09-09 16:38:34 36 1 1
2 1.00 2017-09-09 16:38:35 36 49 1
3 1.00 2017-09-09 16:38:36 36 1 0
4 1.00 2017-09-09 16:38:36 35 74 1
5 1.00 2017-09-09 16:38:41 35 61 1
6 1.00 2017-09-09 16:38:41 35 5 0
7 1.00 2017-09-09 16:38:41 36 12 1
8 1.00 2017-09-09 16:38:41 36 5 1
9 2.00 2017-09-09 13:24:42 43 1 1
10 2.00 2017-09-09 13:24:46 43 30 1
11 2.00 2017-09-09 13:24:46 14 30 1
12 2.00 2017-09-09 13:39:03 14 18 1
13 2.00 2017-09-09 13:39:03 14 19 1
14 2.00 2017-09-09 13:39:54 14 32 1
15 2.00 2017-09-09 13:39:54 14 40 1
16 2.00 2017-09-09 13:39:54 43 32 1
17 2.00 2017-09-09 13:39:54 43 40 1
Как я могу это сделать?