r - 是否可以计算上周的日期值但锚定到特定日期?
问题描述
我想在图表标题中动态使用前一周的日期值(从周日到周六)。
我想列出一周的开始日期和结束日期。
例如:
Start: 22nd April 2018
End: 28th April 2018
Title: "Conversations (22nd April 2018 - 28th April 2018)"
如果使用单词太复杂 - 尤其是nd
/ th
/ rd
/ st
- 那么我很高兴它也有DD/MM/YYYY
格式。
此外,我想锚定日期,这样无论我什么时候得到日期,它们总是会涵盖前一周到那些确切的日子。
例如,无论我是在周二、周三还是周五运行代码,它总是会挑选出前一周锚定到周日的日期。
有没有办法做到这一点?
解决方案
使用while
参数:
x1 <- Sys.Date()
x2 <- weekdays(x1)
while(x2 != "Sunday"){
x1 <- x1 - 1
x2 <- weekdays(x1)
}
start_date <- x1 - 7
end_date <- x1 - 1
给出:
> start_date
[1] "2018-04-22"
> end_date
[1] "2018-04-28"
您可以使用它传递任何日期并查找前一周的开始和结束日期:
x1 <- as.Date("2013-01-04")
x2 <- weekdays(x1)
while(x2 != "Sunday"){
x1 <- x1 -1
x2 <- weekdays(x1)
}
start_date <- x1 - 7
end_date <- x1 - 1
更好的是,把它变成一个函数:
week_findeR <- function(x = Sys.Date()){
x1 <- as.Date(x)
x2 <- weekdays(x1)
while(x2 != "Sunday"){
x1 <- x1 -1
x2 <- weekdays(x1)
}
return(list(x1-7, x1-1))
}
给出输出:
> week_findeR()
[[1]]
[1] "2018-04-22"
[[2]]
[1] "2018-04-28"
> week_findeR("2018-07-04")
[[1]]
[1] "2018-06-24"
[[2]]
[1] "2018-06-30"
推荐阅读
- mysql - “utf-8”编解码器无法解码位置 3 中的字节 0xe6:无效的继续字节
- sql - 访问:如何查询直到找到最终父级?
- python - 检测具有模糊边缘和不同背景的卡片边缘
- django - 设置 Django 项目时的 nginx server_name
- python - python lxml在某些情况下无法解析日语
- javascript - 如何在extjs中隐藏GridPanel的列
- java - Java Spring JPA - 字节 [] 到字符串
- c# - 我的测试用例没有执行,它开始执行但没有任何反应,并且显示未运行状态
- boost-test - CTest 和多测试二进制文件
- c# - TSQL 数组初始化和 LINQ Where on Array