再次回到纸上一个简单的问题,但在实施方面遇到了困难。就上下文而言,这是着眼于嫌疑人和受害者,我们想要实现的是当前受害者是否与上一个受害者相同。如果是这样,嫌疑人的最新受害者与我们想要标记和保留的最后一个条目不同。如果它们相同,我们将删除记录。
所以比较是:
Date 1 上的嫌疑人 A 与受害者 1 相关 = Date 2 上的嫌疑人 A 与受害者 1 = 坠落
Date 1 上的嫌疑人 B 与受害者有关 2 = Date 上的嫌疑人 B 2 与受害者有关 3 = 保留
Date | Suspect | Victim |
---|---|---|
15/01/2022 | A | 1 |
12/03/2022 | A | 1 |
19/02/2022 | B | 2 |
16/01/2022 | B | 3 |
08/03/2022 | B | 4 |
20/03/2022 | B | 5 |
25/01/2022 | C | 5 |
21/02/2022 | D | 6 |
10/01/2022 | D | 7 |
假设这是我当前的数据集。在这种情况下,“嫌疑人”应该只有两个条目 B 和 D,而 A 和 C 被删除。
我正在考虑对 date 和 Suspect 进行安排。然后滞后比较。但是,如果跳跃嫌疑人,滞后如何工作。可以用组变量来解决吗?这就是我被困在概念化它并且害怕删除应该包括的东西的地方。
一如既往,非常感谢任何帮助。
回答1
尝试这个:
dat %>%
group_by(Suspect) %>%
filter(n() > 1 & Victim != last(Victim))
# # A tibble: 4 x 3
# # Groups: Suspect [2]
# Date Suspect Victim
# <chr> <chr> <int>
# 1 19/02/2022 B 2
# 2 16/01/2022 B 3
# 3 08/03/2022 B 4
# 4 21/02/2022 D 6