Я не мог сказать, из вашего вопроса, как вы хотите в выходные дни обрабатываемые поэтому следующий код должен работать с понедельника по пятницу, но в выходные дни не может идти, как вы хотите. Первое, что вы должны сделать, это преобразовать значение в POSXlt
объекта, поскольку они имеют информацию о таких вещах, как день недели, построенных в.
myDate <- as.POSIXlt("2016-10-10", format = "%Y-%m-%d")
Вы, возможно, придется изменить format
строку для даты, поскольку она является неоднозначным из ваш пример, если формат - год-месяц-день или год-день-месяц.
Мы можем использовать следующее уравнение, чтобы получить значение вашей бизнес-недели.
(myDate$mday - myDate$wday + 4) %/% 7 + 1
mday
поле содержит день месяца для даты и wday
содержит числовое значение, указывающее день недели (начиная с 0
в воскресенье). Вычитая wday
от mday
, мы получаем одно и то же число за любой день в пределах той же недели. %/% 7
выполняет целочисленное деление, которое разделяет вещи на недели. + 4
корректирует значение для каждой недели, так что, когда применяется %/% 7
, он укажет желаемую неделю, независимо от того, в какой день недели начинается месяц. Финал + 1
просто преобразует данные, поэтому начальный этап недель начинается с 1
, а не 0
.
Возможно, вы захотите более четко определить «деловую неделю», чтобы мы точно знали, что вы имеете в виду. – thelatemail
будние дни .... нет выходных дней – user1234440
Так что 5 рабочих дней в неделю? Или каждый понедельник сигнализирует о новой деловой неделе независимо от дней? – thelatemail