【发布时间】:2021-11-05 09:40:42
【问题描述】:
我正在尝试根据滚动计数汇总信息。但是,在某些情况下,我不想在聚合行中包含基于它后面的行的行。
例如,我希望下面的聚合为 14 而不是 11。类型字段表示不应包含上面的行。
data.frame(id = rep(123, 7),
type = c(rep("d", 3), "c", rep("d", 3)),
value = c(2, 4, 2, -2, 3, 5, 2)) %>%
group_by(id, type) %>%
mutate(count = seq(n()),
count = ifelse(type == "c", count * -1, count)) %>%
ungroup() %>%
mutate(sum_field = case_when(count <= 4 & count >= 1 ~ value),
sum_should_be = c(2, 4, NA, NA, 3, 5, NA)) %>%
group_by(id) %>%
summarise(current = sum(sum_field, na.rm = T),
desired = sum(sum_should_be, na.rm = T))
【问题讨论】:
-
请提供可重现的示例
dput()可能会有所帮助。