首页 > 解决方案 > 使用 dplyr 构建“隐式”过滤器

问题描述

我正在寻找一种构建“隐式”过滤器的方法,它在 dplyr 中与下面使用 data.table 的代码相同。

library(data.table)

df_test = data.frame(Idx = c(1, 2, 3, 4, 5, 6, 7, 9),
                     Cond = c(T, T, F, T, T,F, F, T),
                     Val = c(T, T, F, T, T, F, T, T))

setDT(df_test)

df_test[Cond == TRUE, Res := cumsum(Val)]

感谢您的帮助最好的亚历山大

标签: rdplyrdata.table

解决方案


似乎我自己找到了解决方案。如果你发现任何不足,欢迎评论...

library(dplyr)

df_test %>%
  group_by(Cond) %>%
  mutate(Res = ifelse(Cond == 1, cumsum(Val), NA)) %>%
  ungroup()

推荐阅读