【发布时间】:2021-02-01 12:45:00
【问题描述】:
我使用 lubridate 包,有点困惑,因为 1 月 29 日星期五和 2 月 2 日星期一属于同一周,这没有意义。
这是我的代码:
library(lubridate)
day1 <- "2021-01-29 00:03:43 CET"
day5 <- "2021-02-01 08:28:51 CET"
week(day1)
wday(day1, label = T)
week(day5)
wday(day5, label = T)
这给了我以下输出
> week(day1)
[1] 5
> wday(day1, label = T)
[1] Fr\\.
Levels: So\\. < Mo\\. < Di\\. < Mi\\. < Do\\. < Fr\\. < Sa\\.
> week(day5)
[1] 5
> wday(day5, label = T)
[1] Mo\\.
Levels: So\\. < Mo\\. < Di\\. < Mi\\. < Do\\. < Fr\\. < Sa\\.
另一个奇怪的事情是天的水平。知道这里有什么问题。我刚刚更新了我所有的包。
干杯 伦格
【问题讨论】:
-
?week() : week() 返回从日期到 1 月 1 日之间发生的完整 7 天周期数,加一。
-
天的水平是正确的。这是从周日开始的有序因素。您可以通过设置选项
week_start来调整此设置,例如wday(day5, label = T, week_start = 1)让一周从星期一开始。也可以使用isoweek来获取符合 ISO 标准的周数。 -
有关周惯例的相关帖子:Transform year/week to date object.
-
谢谢大家!那几天的奇怪水平呢?
-
见github.com/tidyverse/lubridate/issues/551。美国周从周日开始,欧洲周从周一开始,您可以使用
week_start参数进行设置,请参阅我的答案中的编辑