我有一个数据框测量每月的登录次数。我正在尝试创建一个计数器测量months_since_zero_login,它仅在一个月的登录次数为零时添加。第一个月,每个客户的柜台将从零开始。
这是数据:
library(tidyverse)
obs <- seq(as.Date('2020-01-01'),
as.Date('2020-05-01'),
by = "month")
table <- tibble(customer = seq(1:3))
#output
table <- table %>%
crossing(obs) %>%
mutate(login = c(3, 0, 0, 0, 2,
0, 1, 5, 0, 0,
1, 3, 1, 5, 0))
Run Code Online (Sandbox Code Playgroud)
这是预期的结果:
customer obs login months_since_zero_login
<int> <date> <dbl> <dbl>
1 1 2020-01-01 3 0
2 1 2020-02-01 0 0
3 1 2020-03-01 0 1
4 1 2020-04-01 0 2
5 1 2020-05-01 2 0
6 2 2020-01-01 0 0 …Run Code Online (Sandbox Code Playgroud)