r语言 - 从日期开始获取一周



我有一系列日期,正在尝试获取一年中的一周。这似乎是天真的。

Order_Date = c("2017-06-10","2017-06-11","2017-06-12","2017-06-13",
"2017-06-14","2017-06-15","2017-06-16")
strftime(as.POSIXlt(Order_Date) ,format="%W")
week(Order_Date)

06/10 是星期六,所以 06/10 和 06/11 不可能是同一周。

关于如何获得这个的任何想法?

使用日期时间并不总是那么简单。您的问题和SO成员的评论的说明。我增加了几天时间,以更清楚地说明这一点。

library(lubridate)
Order_Date = c("2017-06-10","2017-06-11","2017-06-12","2017-06-13",
"2017-06-14","2017-06-15","2017-06-16", "2017-06-17",
"2017-06-18", "2017-06-19")
strftime(as.POSIXlt(Order_Date) ,format="%W") # week starts on Monday
#  [1] "23" "23" "24" "24" "24" "24" "24" "24" "24" "25"
strftime(as.POSIXlt(Order_Date) ,format="%U") # week starts on Sunday
#  [1] "23" "24" "24" "24" "24" "24" "24" "24" "25" "25"
week(Order_Date) # week starts on Sunday
#  [1] 23 24 24 24 24 24 24 24 25 25

在一个相关的问题中:在这里,我使用 @UweBlock 的ISOweek包来规避经过广泛测试后年终的问题。这是代码:

library(ISOweek)
library(stringr)
str_replace(ISOweek(Order_Date), "201.-W", "")  # week starts on Monday (and follows ISO 8601)
#  [1] "23" "23" "24" "24" "24" "24" "24" "24" "24" "25"

您可以通过?ISOweek获取更多信息。

请让我知道这是否是您想要的。

最新更新