【发布时间】:2020-03-10 02:00:36
【问题描述】:
我有一个来自游戏的基于活动的数据集,我想在游戏会话中汇总它。在某些情况下,我观察到游戏恢复后直接是游戏开始或游戏结束。由于这些不是有意义的游戏会话,因此我想从我的数据集中删除这些观察结果(每场比赛恢复后 a)比赛开始或 b)比赛结束。
简化示例数据:
game_da = data.frame(activity = c("gamestart", "activity1", "activity2", "gameclose", "gameresume", "gameclose", "gameresume", "activity1", "gameclose"))
game_da
activity
1 gamestart
2 activity1
3 activity2
4 gameclose
5 gameresume
6 gameclose
7 gameresume
8 activity1
9 gameclose
预期输出:
game_da2 = data.frame(activity = c("gamestart", "activity1", "activity2", "gameclose", "gameresume", "activity1", "gameclose"))
game_da2
activity
1 gamestart
2 activity1
3 activity2
4 gameclose
5 gameresume
6 activity1
7 gameclose
我尝试过的(...但删除了更多我想要的观察结果):
game_da3 = mutate(game_da, help_var = case_when( activity == "gameresume" |
+ activity == "gamestart" |
+ activity == "gameclose" ~ 1, TRUE ~ 0),
+ lead_help_var = lead(help_var),
+ diff_help_var = help_var + lead_help_var) %>%
+ filter(diff_help_var != 2)
game_da3
activity help_var lead_help_var diff_help_var
1 gamestart 1 0 1
2 activity1 0 0 0
3 activity2 0 1 1
4 gameresume 1 0 1
5 activity1 0 1 1
【问题讨论】:
标签: r performance transform dplyr