【发布时间】:2016-08-11 15:59:36
【问题描述】:
假设我有以下数据集
data
Group Date
A 2016-03-10
A 2016-03-11
A 2016-03-12
A 2016-04-13
A 2016-04-14
A 2016-05-15
A 2016-05-16
A 2016-05-17
B 2016-02-11
B 2016-02-12
B 2016-02-13
B 2016-02-19
B 2016-03-15
我想为每个组找到不同的日期间隔。例如,对于 A 组,2016-03-10 到 2016-03-12 应该是区间 1,2016-04-13 到 2016-04-14 应该是区间 2,2016-05-15 到 2016-05-17应该是间隔 3。我想找出所有休息的地方以及每组发生了多少次休息。这样我就可以分析了。这应该为每个组计算。以下应该是我理想的输出,
Group Date Interval
A 2016-03-10 1
A 2016-03-11 1
A 2016-03-12 1
A 2016-04-13 2
A 2016-04-14 2
A 2016-05-15 3
A 2016-05-16 3
A 2016-05-17 3
B 2016-02-11 1
B 2016-02-12 1
B 2016-02-13 1
B 2016-02-19 2
B 2016-03-15 3
以下是我的尝试,
data %>% group_by(Group) %>% mutate(Date - lag(Date)) .
这给出了第一行的 NA 输出,当日期更改时为 1,当日期不变时为 0。但我想要每个日期间隔为 1,2,3 之类的东西。
更新了无法正常工作的数据集,
group date count
(factor) (date)
1 Albany 2016-02-15 55
2 Albany 2016-02-16 1
3 Albany 2016-04-08 40
【问题讨论】: