如何解决将“ Y-m-w”转换为日期-一周的第一个星期一
我正在尝试将%Y-%m-%w
转换为从星期一开始的相应星期的第一天。
所以%Y-%m-%w
至%Y-%m-%d
x <- c("2020-09-01","2020-09-03","2020-09-04","2020-09-05")
2020-09-01 -> 2020-08-31
2020-09-03 -> 2020-09-14
2020-09-04 -> 2020-09-21
2020-09-05 -> 2020-09-28
解决方法
使用 lubridate ,将其转换为忽略周数的日期,因此所有日期均从1日开始。然后添加周数,最后四舍五入到星期一。
library(lubridate)
x <- c("2020-09-01","2020-09-03","2020-09-04","2020-09-05")
x1 <- ymd(paste0(substring(x,1,8),"01"))
# [1] "2020-09-01" "2020-09-01" "2020-09-01" "2020-09-01"
x2 <- as.numeric(substring(x,9,10)) - 1
# [1] 0 2 3 4
x3 <- x1 + weeks(x2)
# [1] "2020-09-01" "2020-09-15" "2020-09-22" "2020-09-29"
floor_date(x3,unit = "weeks",week_start = 1) #1 represents Monday.
# [1] "2020-08-31" "2020-09-14" "2020-09-21" "2020-09-28"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。