我正在使用floor_date
将日期轮到几周:
library(lubridate)
floor_date(ymd_hms('2016-08-26 16:27:15'), '7 days')
[1] "2016-08-22 UTC"
但是,我想将具体日期设为第一周的开头。
例如,我想将"2016-08-26 UTC"
设置为第一周。作为一种解决方法,我试图调整getOption("lubridate.week.start")
,但无论我通过什么,我无法改变起始工作日:
> floor_date(ymd_hms('2016-08-26 16:27:15'), '7 days', week_start = getOption("lubridate.week.start", 1))
[1] "2016-08-22 UTC"
> floor_date(ymd_hms('2016-08-26 16:27:15'), '7 days', week_start = getOption("lubridate.week.start", 7))
[1] "2016-08-22 UTC"
答案 0 :(得分:1)
您需要设置unit = "week"
。来自?round_date
week_start:当单位为周时指定参考日; 7是星期天。
实施例
library(lubridate)
lapply(c(1, 5), function(x) floor_date(ymd('2016-08-26'), 'week', week_start = x))
#[[1]]
#[1] "2016-08-22"
#
#[[2]]
#[1] "2016-08-26"