【发布时间】:2020-01-28 19:20:12
【问题描述】:
我想解决一个棘手的问题:
我的数据类似于以下示例:
UniqueID Month
ABC123 1
ABC123 2
ABC123 3
ABC123 4
ABC123 6
ABC123 7
DEF456 3
DEF456 4
DEF456 10
DEF456 11
DEF456 12
DEF456 14
GHI789 2
GHI789 3
JKL012 12
JKL012 13
JKL012 14
UniqueID 每个月都是唯一的。月份列指的是特定月份。例如:1=2018 年 10 月,2=2019 年 11 月,以此类推。我们总共有 14 个不同的月份有数据。我想累计计算我们跳过一个月的次数,以及每个 UniqueID 的最后一个月不是 14 的时间。起始月份不计入计算中。结果计算将产生以下示例:
UniqueID Month CountSkip
ABC123 1 0
ABC123 2 0
ABC123 3 0
ABC123 4 0
ABC123 6 1
ABC123 7 2
DEF456 3 0
DEF456 4 0
DEF456 10 1
DEF456 11 1
DEF456 12 1
DEF456 14 2
GHI789 2 0
GHI789 3 1
JKL012 12 0
JKL012 13 0
JKL012 14 0
我有一个 sn-p 通过执行以下操作来计算跳过的总数:
data %>%
group_by(UniqueID) %>%
mutate(Skipped = sum(diff(Month) > 1))
我如何修改它以累计计算跳过次数并考虑上个月的值不是 14?
任何帮助将不胜感激!谢谢!
【问题讨论】: