【发布时间】:2019-11-01 12:12:17
【问题描述】:
遇到一个真正令人头疼的问题,不知道如何解决。真的希望你们中的一些人能够提供帮助。另外,我第一次为 StackOverflow 做出了贡献……耶!
library(tidyverse)
library(lubridate)
start_date <- ymd("2014-06-28")
end_date <- ymd("2019-06-30")
PayPeriod_EndDate <- seq(start_date, end_date, by = '2 week')
PayPeriod_Interval <- int_diff(PayPeriod_EndDate)
这会创建一个间隔向量,每个间隔代表一个为期两周的支付期。这是第一部分,第一部分相对容易(虽然还需要一段时间才能弄清楚,哈)。
第二部分包含一个日期向量。
Dates <- c("2014-07-08", "2018-10-20", "2018-12-13", "2018-12-13", "2018-12-06", "2018-11-30", "2019-01-16", "2019-01-23", "2019-03-15", "2018-10-02")
我想确定日期%within%间隔,输出是每个日期所在的间隔。所以日期"2014-07-08" 将被分配2014-06-28 UTC--2014-07-12 UTC,因为这个日期在这个间隔内。
这里似乎探索了一个非常相似的问题...https://github.com/tidyverse/lubridate/issues/658
我尝试了以下方法
ymd(Dates) %within% PayPeriod_Interval
但是,结果只计算 Dates 向量中的第一个元素。从那以后,我尝试了各种 for 循环组合、变异为因子等……但进展甚微。这是与工作相关的,所以我真的很缺乏时间,并将全天监控这篇文章,直到周末。
最好,谢谢! 詹姆斯
【问题讨论】:
-
顺便说一句,数据集包含 730 万行“日期”,区间向量包含 130 个区间。短暂尝试了 map_chr,但遇到了相同长度的问题并放弃了尝试。
-
恭喜你的第一篇文章!这是不清楚的“拿来算”。另外,你能澄清一下你的预期输出应该是什么样子吗?
-
欢迎来到 SO!如果您有其他信息,可以编辑您的问题!
-
当然会编辑,“takes calculates”的说法肯定不清楚。感谢您指出!