week(D-6ren">
gpt4 book ai didi

r - Lubridate week() 以查找多年期的连续周数

转载 作者:行者123 更新时间:2023-12-03 23:33:58 26 4
gpt4 key购买 nike

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

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

接下来,假设我想看看这些天属于哪个周数:
> week(Date)
1
1

润滑太棒了!

但是等等......我正在处理一个包含 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 - Lubridate week() 以查找多年期的连续周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19780415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com