У меня есть R data.frame, как показано ниже. В магазине я хочу создать столбцы newstart и newend, так что newstart и newend будут вычтены 14 дней из соответствующих столбцов начала и конца.r data.frame возвращается даты
Но если дата нового или нового времени находится либо в исходном столбце начала, либо в конце, я хотел бы вернуться еще на 14 дней.
Таким образом, в случае 3-го ряда, newstart и newend будут установлены в 2013 и 2012 годах и 20131127 соответственно. Но так как 20131120 присутствует в конце столбца для магазина 8 (строка 2), мне нужно вернуться еще на две недели, чтобы получить новую и новую версию. Я должен снова проверить, чтобы убедиться, что newstart и newend отсутствуют в хранилище 8 в начальных и конечных столбцах. Как я мог сделать то же самое?
У меня есть таблица с несколькими значениями для столбца хранилища. Я просто показываю снимок здесь
store=c(rep(8,4),rep(11,4))
start=c("20131009","20131113","20131204","20150624","20140820","20140924","20150923","20151014")
end=c("20131016","20131120","20131211","20150701","20140827","20141001","20150930","20151021")
maint=data.frame(store,start,end)
maint$start=as.Date(maint$start,"%Y%m%d")
maint$end=as.Date(maint$end,"%Y%m%d")
maint
store start end
1 8 20131009 20131016
2 8 20131113 20131120
3 8 20131204 20131211
4 8 20150624 20150701
5 11 20140820 20140827
6 11 20140924 20141001
7 11 20150923 20150930
8 11 20151014 20151021
---------------------- update1
первый ответ ниже работ. Но в случае второй и третьей строки и последних двух строк она предоставляет перекрывающиеся даты. Как я могу избежать такого overalap, удостоверившись, что даты в Newstart и newend DonT пересекаться с начальной и конечной колонной
store start end newstart newend
8 10/9/2013 10/16/2013 9/25/2013 10/2/2013
**8 11/13/2013 11/20/2013 10/30/2013 11/6/2013
8 12/4/2013 12/11/2013 10/23/2013 10/30/2013**
8 6/24/2015 7/1/2015 6/10/2015 6/17/2015
11 8/20/2014 8/27/2014 8/6/2014 8/13/2014
11 9/24/2014 10/1/2014 9/10/2014 9/17/2014
**11 9/23/2015 9/30/2015 9/9/2015 9/16/2015
11 10/14/2015 10/21/2015 9/2/2015 9/9/2015**
спасибо за ответ и ваш комментарий. Можно ли ответить на мое обновление 1, которое так же, как вы упомянули ... – user2543622