这个问题要求"前一个日历周的星期一".我们在下面假设这意味着您希望在输入日期之前或之前的星期一.
请注意,使用"Date"
class 会更好,因为"Date"
不需要时间,类没有时区,因此可以避免与"POSIXt"
类相关的潜在时区错误.
nextfri
在动物园里有 动物插图,动物园quickref晕图,我们可以使用它作为类似功能的基础.我们将这些更改(1)ceiling
替换为floor
,(2)5(星期五)替换为1(星期一)和(3)我们添加origin=
参数to as.Date
- 如果加载动物园,则提供默认原点,因此origin=
参数可以是可选的省略.
此函数仅使用基数R并进行矢量化.它接受一个"Date"
类向量,并"Date"
在相应的输入日期或之前返回星期一的日期类向量.
lastmon <- function(x) 7 * floor(as.numeric(x-1+4)/7) + as.Date(1-4, origin="1970-01-01")
Run Code Online (Sandbox Code Playgroud)
例如,
> lastmon(as.Date(c("2016-01-15", "2016-01-11")))
[1] "2016-01-11" "2016-01-11"
Run Code Online (Sandbox Code Playgroud)
该lastmon
功能可以简单地简化为:
lastmon2 <- function(x) x - as.numeric(x-1+4)%%7
Run Code Online (Sandbox Code Playgroud)
注意:此处,此处,此处和此处还可以看到SO答案,以获得更多用途nextfri
或其变体.
归档时间: |
|
查看次数: |
1965 次 |
最近记录: |