小编Des*_*ond的帖子

基于滞后行的条件总和

我有一个数据框测量每月的登录次数。我正在尝试创建一个计数器测量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)

r dplyr

2
推荐指数
1
解决办法
94
查看次数

标签 统计

dplyr ×1

r ×1