Я должен добавить к дате вектор теноров , периодов времени.
Теноры представляют собой объединенные строки со значением и единицей времени, где единицами являются неделя (W
), месяц (M
) или год (Y
):
tenor <- c('2W', '6M', '1Y', '2Y', '5Y')
Я хочу добавить каждый период к дате: 06/12/2018
:
06/12/2018 + 2W
06/12/2018 + 6M
06/12/2018 + 1Y
06/12/2018 + 2Y
06/12/2018 + 5Y
Вектор может быть изменен, поэтому я не могу жестко закодировать эти периоды.
Я пытался использовать POSIXlt
, но он не работает, и я не уверен, почему. При запуске цикла ответы на новую дату не имеют смысла.
Большое спасибо!
tenor <- c('2W', '6M', '1Y', '2Y', '5Y')
k <- nchar(tenor)
end <- substr(tenor, k, k)
start <- substr(tenor, 1, k - 1)
start <- as.numeric(start)
n <- length(tenor)
time_0 <- as.Date('06-12-2018', '%d-%m-%Y')
date1 <- as.POSIXlt(time_0)
new_date <- vector(mode = 'double', n)
for(i in 1:n){
if(end[i] == 'Y'){
date1$year <- date1$year + start[i]
new_date[i] <- as.Date(date1)}
}