Я работаю над функцией для создания двух столбца df, содержащего StartDate & EndDate. Я поставлю три параметра: startdate, enddate, &, где интервал указывает, должны ли каждая строка представлять разные дни, месяцы или годы в пределах диапазона, который я предоставляю.Функция для точной даты окончания на основе заданного интервала
Например, это:
myfunction("2016/01/01", "2016/04/30", "months")
будет генерировать то же самое, как это:
sd <- c("2016/01/01","2016/02/01","2016/03/01","2016/04/01")
ed <- c("2016/01/31","2016/02/29","2016/03/31","2016/04/30")
df <- data.frame(sd, ed)
И это:
myfunction("2016/01/01","2016/01/05", "days")
будет генерировать то же самое, как это:
sd <- c("2016/01/01","2016/01/02","2016/01/03","2016/01/04","2016/01/05")
ed <- c("2016/01/01","2016/01/02","2016/01/03","2016/01/04","2016/01/05")
df <- data.frame(sd, ed)
Вот что я пытался до сих пор:
range <- function(startdate, enddate, interval){
sd <- seq(as.Date(startdate), as.Date(enddate), interval)
ed <- seq(as.Date(startdate), as.Date(enddate), interval) -1
df <- data.frame(sd,ed)
return(View(df))
}
Но запустить ли я функцию в течение нескольких дней или месяцев, дата окончания неправильно. См:
range("2016/01/01","2016/01/05","days")
range("2016/01/01","2016/04/30","months")
Как я могу код так, что моя функция последовательно возвращает правильный дату конца, независимо от того, правильно ли я смотреть на дни, месяцы или годы? Я рассмотрел другие вопросы здесь, но все они, похоже, используют статические интервалы, а не динамические.
Пожалуйста, взгляните на 'seq()' – Uwe
Спасибо, у меня есть. Но мне понадобится функция, чтобы выйти 1 день, 30-31 дней или 365 дней, в зависимости. Я не нашел способ включить динамические длины в seq() или функцию. Какие-либо предложения? – jesstme