下面是我的代码:
set.seed(23)
data_toy <- tibble(
family_code = sample(factor(400:410),1000,T),
event_type = factor(sample(c("sad","happy"),1000,
replace = TRUE,prob = c(.2,.8))),
score = sample(1:100,1000,TRUE)
) %>% mutate(score = if_else(event_type =="happy",NA,score)) %>%
arrange(family_code)
输出:
family_code event_type score
<fct> <fct> <int>
1 400 happy NA
2 400 happy NA
3 400 happy NA
4 400 happy NA
5 400 sad 57
6 400 happy NA
7 400 happy NA
8 400 happy NA
9 400 happy NA
10 400 sad 65
我想创建一个功能,计算每个家庭的快乐事件的数量,直到悲伤事件。
在我分享的例子中,我想要的输出是:
family_code event_type score happy_counter
<fct> <fct> <int> <dbl>
1 400 happy NA NA
2 400 happy NA NA
3 400 happy NA NA
4 400 happy NA NA
5 400 sad 57 4
6 400 happy NA NA
7 400 happy NA NA
8 400 happy NA NA
9 400 happy NA NA
10 400 sad 65 4
11 400 happy NA NA
12 400 happy NA NA
13 400 happy NA NA
14 400 happy NA NA
15 400 happy NA NA
16 400 happy NA NA
17 400 happy NA NA
18 400 happy NA NA
19 400 sad 79 8
20 400 sad 78 0
我的数据接近了。10k观察我尝试了group_by
和nest_by
,但在每次悲伤事件后都难以将计数归零。
2条答案
按热度按时间wkyowqbh1#
类似于下面的代码,使用
lag
访问计数值8ftvxx2r2#
试试看