[R] Calculation with date

David Winsemius dwinsemius at comcast.net
Sat Mar 9 17:37:23 CET 2013


On Mar 9, 2013, at 4:24 AM, Rui Barradas wrote:

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

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:

> seq( Date- as.POSIXlt(Date)$mday+1, length=diff(range(Vec))+1, by="month")[Vec+1]
[1] "2013-03-01" "2014-04-01" "2014-01-01" "2013-07-01"


> 
> 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:
>> 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:
>> 
>>> Date <- as.Date(Sys.time())
>>> 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.
>> 
> 
> ______________________________________________
> 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.

David Winsemius
Alameda, CA, USA



More information about the R-help mailing list