如何识别周末并从我的 R 时差中自动减去它
How to Identify a Weekend and Subtract it Automatically From my Time Differences in R
我正在编写一个代码,该代码使用两个时间戳向量来为我提供特定进程所需的时间(简称 difftime)。
不过周末时间应该是暂停的。因此,如果产品在周五进货并在周二离开,我必须减去周末时间。
所以我需要一种可能性来确定产品处理时间何时经过周末,周末会自动从时差中减去。
这些产品的识别比减法更难。
函数 weekdays
可能对这里有帮助:
weekdays(as.Date("2018-07-30"))
# [1] "monday"
因此,如果您传递一个日期对象向量,您将能够识别星期六和星期日。
例如:
which(weekdays(as.Date(c("2018-07-30", "2018-07-29", "2018-07-28", "2018-07-27"))) %in% c("saturday", "sunday"))
[1] 2 3
使用 chron
包中的 is.weekend
。
days<-seq.Date(as.Date("01-01-2017",format= "%d-%m-%Y"),as.Date("01-04-2017",format= "%d-%m-%Y"),by = "days")
library(chron)
days[is.weekend(days)]
[1] "2017-01-01" "2017-01-07" "2017-01-08" "2017-01-14" "2017-01-15" "2017-01-21" "2017-01-22"
[8] "2017-01-28" "2017-01-29" "2017-02-04" "2017-02-05" "2017-02-11" "2017-02-12" "2017-02-18"
[15] "2017-02-19" "2017-02-25" "2017-02-26" "2017-03-04" "2017-03-05" "2017-03-11" "2017-03-12"
[22] "2017-03-18" "2017-03-19" "2017-03-25" "2017-03-26" "2017-04-01"
weekdays.Date(days[is.weekend(days)])
[1] "Sunday" "Saturday" "Sunday" "Saturday" "Sunday" "Saturday" "Sunday" "Saturday"
[9] "Sunday" "Saturday" "Sunday" "Saturday" "Sunday" "Saturday" "Sunday" "Saturday"
[17] "Sunday" "Saturday" "Sunday" "Saturday" "Sunday" "Saturday" "Sunday" "Saturday"
[25] "Sunday" "Saturday"
我正在编写一个代码,该代码使用两个时间戳向量来为我提供特定进程所需的时间(简称 difftime)。
不过周末时间应该是暂停的。因此,如果产品在周五进货并在周二离开,我必须减去周末时间。 所以我需要一种可能性来确定产品处理时间何时经过周末,周末会自动从时差中减去。
这些产品的识别比减法更难。
函数 weekdays
可能对这里有帮助:
weekdays(as.Date("2018-07-30"))
# [1] "monday"
因此,如果您传递一个日期对象向量,您将能够识别星期六和星期日。
例如:
which(weekdays(as.Date(c("2018-07-30", "2018-07-29", "2018-07-28", "2018-07-27"))) %in% c("saturday", "sunday"))
[1] 2 3
使用 chron
包中的 is.weekend
。
days<-seq.Date(as.Date("01-01-2017",format= "%d-%m-%Y"),as.Date("01-04-2017",format= "%d-%m-%Y"),by = "days")
library(chron)
days[is.weekend(days)]
[1] "2017-01-01" "2017-01-07" "2017-01-08" "2017-01-14" "2017-01-15" "2017-01-21" "2017-01-22"
[8] "2017-01-28" "2017-01-29" "2017-02-04" "2017-02-05" "2017-02-11" "2017-02-12" "2017-02-18"
[15] "2017-02-19" "2017-02-25" "2017-02-26" "2017-03-04" "2017-03-05" "2017-03-11" "2017-03-12"
[22] "2017-03-18" "2017-03-19" "2017-03-25" "2017-03-26" "2017-04-01"
weekdays.Date(days[is.weekend(days)])
[1] "Sunday" "Saturday" "Sunday" "Saturday" "Sunday" "Saturday" "Sunday" "Saturday"
[9] "Sunday" "Saturday" "Sunday" "Saturday" "Sunday" "Saturday" "Sunday" "Saturday"
[17] "Sunday" "Saturday" "Sunday" "Saturday" "Sunday" "Saturday" "Sunday" "Saturday"
[25] "Sunday" "Saturday"