Skip to content

Calculation with date

5 messages · Christofer Bogaso, R. Michael Weylandt, Rui Barradas +2 more

#
Hello again,

Let say I have an non-negative integer vector (which may be random):

Vec <- c(0, 13, 10, 4)

And I have a date:
[1] "2013-03-09"



Using these 2 information, I want to get following date-vector:

New_Vec <- c("2013-03-01", "2014-04-01", "2014-01-01", "2013-07-01")

Basically the month-difference between 'New_Vec' and 'Date' will be 'Vec '

Is there any R function to do it programmatically?


Thanks for your help.
#
Hello,

I don't believe there's such a function, but you can write one.

Date <- as.Date(Sys.time())
New_Vec <- c("2013-03-01", "2014-04-01", "2014-01-01", "2013-07-01")
New_Vec <- as.Date(New_Vec)
Vec <- c(0, 13, 10, 4)


plusmonths <- function(x, y){
	s <- as.integer(format(x, "%m")) + y
	yx <- as.integer(format(x, "%Y")) + (s %/% 12)
	as.Date(paste(yx, s %% 12, "01", sep = "-"))
}
pm <- plusmonths(Date, Vec)

identical(New_Vec, pm)  # TRUE


Hope this helps,

Rui Barradas

Em 09-03-2013 11:41, Christofer Bogaso escreveu:
#
Hi,

You could try this:
library(lubridate)
?res<-as.Date(dmy(format(Date-8, "%d-%m-%Y"))+months(Vec))
res
#[1] "2013-03-01" "2014-04-01" "2014-01-01" "2013-07-01"
A.K.




----- Original Message -----
From: Christofer Bogaso <bogaso.christofer at gmail.com>
To: r-help <r-help at r-project.org>
Cc: 
Sent: Saturday, March 9, 2013 6:41 AM
Subject: [R] Calculation with date

Hello again,

Let say I have an non-negative integer vector (which may be random):

Vec <- c(0, 13, 10, 4)

And I have a date:
[1] "2013-03-09"



Using these 2 information, I want to get following date-vector:

New_Vec <- c("2013-03-01", "2014-04-01", "2014-01-01", "2013-07-01")

Basically the month-difference between 'New_Vec' and 'Date' will be 'Vec '

Is there any R function to do it programmatically?


Thanks for your help.

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
#
On Mar 9, 2013, at 4:24 AM, Rui Barradas wrote:

            
I beg to disagree. The seq.Date function lets one create sequences by month. The only added twist in this case is to subract to the beginning of the current month:
[1] "2013-03-01" "2014-04-01" "2014-01-01" "2013-07-01"
David Winsemius
Alameda, CA, USA