有没有可能得到这个月的第N个营业周?目前我有以下代码,但它考虑到了周末。例如,如果我们给出日期2016-10-10,这将使3成为当前月份的第几周。事实上,这实际上是一个月中的第二个营业周。
wk <- function(x) as.numeric(format(x, "%U"));
cur.wom = wk(d) - wk(as.Date(cut(d, "month"))) + 1发布于 2016-11-23 04:24:06
我不能从你的问题中看出你希望如何处理周末,所以下面的代码应该在周一到周五工作,但周末可能不会像你想的那样进行。您应该做的第一件事是将值转换为POSXlt对象,因为这些对象具有内置的诸如星期几之类的信息。
myDate <- as.POSIXlt("2016-10-10", format = "%Y-%m-%d")您可能需要修改日期的format字符串,因为如果格式为年-月-日或年-日-月,则该字符串在示例中不明确。
然后,我们可以使用以下等式来获得您的业务周值。
(myDate$mday - myDate$wday + 4) %/% 7 + 1mday字段包含日期的月份日期,wday字段包含指示星期几的数值(从周日的0开始)。通过从mday中减去wday,我们得到了同一周内任何一天的相同数字。%/% 7做整数除法,这将把事情分成周。+ 4调整每周的值,这样当应用%/% 7时,它将指示您想要的周,而不管该月是从哪一周开始的。最终的+ 1只是转换数据,因此从1开始计算周数,而不是从0开始。
https://stackoverflow.com/questions/40668012
复制相似问题