Learn R Programming

DescTools (version 0.99.19)

AddMonths: Add a Month to a Date

Description

Clueless adding numbers of months to a date will in some cases lead to invalid dates, think of e.g. 2012-01-30 + 1 month. AddMonths ensures that the result is always a valid date, e.g. as.Date("2013-01-31") + 1 month will be "2013-02-28". If number n is negative, the months will be subtracted.

Usage

AddMonths(x, n, ...)

Arguments

x
a Date object (or something which can be coerced by as.Date(x, ...) to such an object) to which a number of months has to be added.

n
the number of months to be added. If n is negative the months will be subtracted.

...
the dots are passed to as.Date, e.g. for supplying origin.

Value

Date with the same dimension as x, containing the transformed dates.

Details

All parameters will be recyled if necessary.

References

Thanks to Antonio: http://stackoverflow.com/questions/14169620/add-a-month-to-a-date

See Also

AddMonthsYM; Date functions: Year, Month, etc.

Examples

Run this code
# characters will be coerced to Date
AddMonths("2013-01-31", 1)

# negative n
AddMonths(as.Date("2013-03-31"), -1)

# Arguments will be recycled
# (with warning if the longer is not a multiple of length of shorter)
AddMonths(c("2013-01-31", "2013-03-31", "2013-10-31", "2013-12-31"), c(1,-1))


x <- as.POSIXct(c("2015-01-31", "2015-08-31"))
n <- c(1, 3)
AddMonths(x, n)

# mind the origin if x supplied as numeric ...
x <- as.numeric(as.Date(x))
AddMonths(x, n, origin=as.Date("1970-01-01"))

Run the code above in your browser using DataLab