我有以下数据框:人员A有5个假期,第一个假期是2015-03-11到2015-03-15,以及人员A从2016-02-04到2016-02-10的最后一个假期 .
Person fromDate toDate
A 2015-03-11 2015-03-15
A 2015-04-17 2015-06-16
A 2015-09-18 2015-10-12
A 2015-12-18 2016-01-02
A 2016-02-04 2016-02-10
B 2015-04-10 2016-04-16
B 2016-12-12 2016-12-20
C 2015-01-02 2015-02-04
C 2015-03-03 2015-03-05
C 2015-04-04 2015-04-07
C 2016-01-03 2016-01-10
C 2016-10-12 2016-10-15
C 2016-11-01 2016-11-05
我想找到所有在365天内至少休假5次的人 . 在上面的例子中,人A在365天休假5次 . C人去了6个假期但不是365天 . 结果应该是一个数据帧
Person at_least_five_vacations_within_365_days
A TRUE
B FALSE
C FALSE
3 回答
你的数据:
设置
number of trips
窗口:使用
dpylr
并假设您的日期已按Person
排序产量
这可能会奏效 . 但是你应该指定预期的输出 .
df
只是您的数据集,而实例是人的访问次数accepted answer使用
data.table
来读取数据,但继续使用dplyr
方法 .下面的方法使用
readr
包中的read_table2()
,但使用data.table
"one-liner"实现了所需的结果:解释
该方法类似于接受的答案:
toDate
滞后于所需的人数,然后检查实际fromDate
是否在给定的天数范围内 .any()
函数用于确定特定人员是否至少出现一次 . 移位操作的结果取决于行的顺序 . 因此,data.table是事先订购的 .OP已要求查找所有在365天内至少休假5次的人,但他没有明确说明如何计算假期(按开始日期,结束日期或两者兼而有之?) . 因此,故意选择检查第4次假期的结束日期与实际假期的开始日期 .
数据