我正在清理有关客户行为的一些数据,我想识别并过滤掉客户执行特定事件的第二时间。由于这是更大的数据操作项目的一个元素,理想情况下我想将这三行添加到更长的dplyr链中。
这里涉及两个逻辑:
这是我用于每个操作的dplyr代码:
mutate(second_time = ifelse(lag(pct_completed,1) > 0.9 & pct_completed < .2 & lag(customer_id,1) == customer_id, "yes", "no")) %>%
mutate(second_time = ifelse(lag(second_time,1)=="yes"&lag(customer_id,1) == customer_id, "yes", second_time)) %>%
filter(second_time = "no")
如果我在正常的dplyr链中运行上面的第二个mutate函数,它只会将第二个事件中的第二行标记为“yes”,而不是任何后续的。因此,我认为我需要编写一个for循环来捕获第二阶段中的所有剩余事件。
我附上了一些sample data here来说明问题。
如果有人对如何编写可以合并到dplyr链中的for循环有任何好的建议,我将非常感激。
答案 0 :(得分:2)
我提出了一个更简单的解决方案。
alias R=/usr/bin/R