Используя библиотеку lubridate
:
require(lubridate)
d <- as.Date('2018-09-01')
last_day <- d
day(last_day) <- days_in_month(last_day)
Для базового решения R мы можем определить вспомогательный метод для добавления месяцев.Затем можно вычислить последний день данного месяца, добавив один месяц к первому месяцу и вычтя один день:
add.months <- function(date, n) seq(date, by=paste (n, "months"), length=2 [2]
d <- as.Date('2018-09-01') # first of the month
last_day <- add.months(d, 1) - 1 # last of the month
Кредит на вспомогательную функцию add.months
присваивается этот ТАК вопрос .