在R中,说我有一些Lubridate日期的向量:

> Date
"2012-01-01 UTC"
"2013-01-01 UTC"


接下来,假设我想看看这些天是几号:

> week(Date)
1
1


Lubridate太棒了!

但是,等等...我正在处理一个包含10,000行数据的时间序列...并且数据跨度为3年。

我一直在努力寻找实现这一目标的方法:

> result of awesome R code here
1
54


问题:在Lubridate的多年周期中,是否有一种简洁的方法可以得出周数列表?更直接地,我希望将第二年的第一周表示为第54周。第三年的第一个星期即第107个星期,即恶心。

到目前为止,我已经尝试了多种哈克尼方案,但是似乎无法创建没有用透明胶带固定的东西。任何建议将不胜感激。提前致谢。

最佳答案

要获取从特定日期到另一个日期的时间间隔,您可以减去...

如果tda是您的日期向量,则

tda - min(tda)


它们之间的秒数差。

要在几周内拿出单位:

(tda - min(tda))/eweeks(1)


要从特定日期开始:

tda - ymd(19960101)


这给出了从1996年到每个值的天数。

从那里,您可以按每周的天数或每周的秒数进行划分。

(tda - ymd(19960101))/eweeks(1)


从2012年1月开始,仅获取整数部分:

trunc((tda - ymd(20111225))/eweeks(1))


测试数据:

tda = ymd(c(20120101, 20120106, 20130101, 20130108))


输出:

 1  1 53 54

关于r - 润滑week()以查找多年期间的连续周号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19780415/

10-12 20:44