我需要根据我需要在群组中应用的过滤操作来计算群组中的记录数量
DF
query
我需要计算(或标记)发生了' s-1'组合在' dg-cs' ' v'之前的字段在' dg'。
因此输出将是
rowParser
答案 0 :(得分:6)
我的方法如下:
library(dplyr)
df %>%
group_by(id) %>%
mutate(out = dg == "s" & cs == 1 & cumsum(dg == "v") == 0)
## A tibble: 9 x 4
## Groups: id [3]
# id dg cs out
# <int> <chr> <int> <lgl>
#1 1 s 1 TRUE
#2 1 v 0 FALSE
#3 2 s 0 FALSE
#4 2 v 1 FALSE
#5 2 s 1 FALSE
#6 2 s 0 FALSE
#7 3 s 1 TRUE
#8 3 s 1 TRUE
#9 3 v 1 FALSE
部分cumsum(dg == "v") == 0
表示只有dg=="v"
尚未针对该特定ID出现时才能为真。