基于DPLYR实现按月累计会员数统计 无需For循环的Tidy风格实现方案
实现方案
使用dplyr搭配purrr即可实现完全符合tidy风格的代码,替代原有for循环:
- 首先加载依赖包
library(dplyr) library(purrr)
- 核心实现代码
total.membership <- map_dfr(month.list, ~ { total.membership.working %>% ungroup() %>% filter(Month <= .x) %>% summarise( Month = max(Month), total_membership = n_distinct(`Mem Account`) ) })
上述代码逻辑和原有for循环完全一致,通过map_dfr遍历month.list中的每一个日期阈值,自动将每次计算得到的单行统计结果按遍历顺序拼接为最终数据框,无需手动循环绑定行。如果需要最终结果按月份升序排列,可以在末尾补充排序逻辑:
total.membership <- total.membership %>% arrange(Month)
内容的提问来源于stack exchange,提问作者Jeremy R. Johnson
相关产品推荐
相关产品推荐

