以下是我的代码:
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观测值.我try 了group_by
次和nest_by
次,但每次悲伤的事件发生后,我都很难将计数归零.