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"
我正在编写一个函数,它将获取我的 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"