r:创建自定义 "week" 函数

r: create custom "week" function

我正在编写一个函数,它将获取我的 df$date 字段(每天 POSIXct 日期(按天)并创建一个名为 df$wbm 的新变量(wbm = week从星期一开始)。我知道数学是有效的,因为我在 Excel 中完成了此操作,但语法不起作用,请参见下文:

df$wbm<- if (weekdays(df$date) == "Sunday") {
  df$date - days(6)
} else { df$date + (days(2) - df$date)
  }

%w 可能是您要查找的 format 参数:它是星期几,星期日是 0

> x <- as.POSIXct('2018-11-20 12:12:12')
> format(x, "%w")
[1] "2"

浏览了几个链接,我发现这里的最后一个答案最有帮助:

这是我想出的,使用 lubridate:

> df$wbm<- lubridate::floor_date(df$date, "week") + days(1)
> weekdays(df$wbm)[1]
[1] "Monday"