【发布时间】:2016-10-17 21:58:00
【问题描述】:
目标:将日期对象转换为星期几的日期;它们仍应用作日期对象
例如,今天将转换为2016-10-16,明天将转换为相同。
样本数据:
library(lubridate)
dt <- Sys.Date()-days(1:20)
"2016-10-17" "2016-10-16" "2016-10-15" "2016-10-14" "2016-10-13" "2016-10-12" "2016-10-11"
"2016-10-10" "2016-10-09" "2016-10-08" "2016-10-07" "2016-10-06" "2016-10-05"
"2016-10-04" "2016-10-03" "2016-10-02"
预期输出:
"2016-10-16" "2016-10-16" "2016-10-09" "2016-10-09" "2016-10-09" "2016-10-09" "2016-10-09"
"2016-10-09" "2016-10-09" "2016-10-02" "2016-10-02" "2016-10-02" "2016-10-02"
"2016-10-02" "2016-10-02" "2016-10-02"
我尝试过使用lubridate、zoo 和xts 包和strptime,但没有什么能满足需要。 MySQL 中的函数yearweek 正是我想要的(注意:包sqldf 没有那个函数)。
这似乎已经有了答案,但搜索却没有运气; C++、javascript 和 Ruby,但在 R 中什么都没有。
【问题讨论】:
-
你检查过
floor_date(dt, "week")吗? -
dt - ((lubridate::wday(dt) + 5) %% 7 + 1) -
“一周的第一个星期日”..?
-
@lukeA 这是一个很方便的功能,有什么方法可以选择楼层设置在哪一天?
-
@bigreddmachine 我的错字,我的错。不用担心!
标签: r datetime data-conversion