On 01/01/2014 08:53 AM, Christofer Bogaso wrote:
Hi again,

Happy new year 2014 to every R gurus and users.

I am struggling with some calculation with dates... Let say I have
following vector of months:

Months<- c("Jan", "Dec", "Mar")

Now I need to assign year with them. This assignment will be based on some
given date. Let say my given date is :

Given_Date<- as.Date("2013-12-23")

So in this case, the modified month will be:

  Months_Mod<- c("Jan-2014", "Dec-2013", "Mar-2014")

However if given date is:

Given_Date<- as.Date("2014-01-04")

then the modified months will be:

  Months_Mod<- c("Jan-2014", "Dec-2014", "Mar-2014")

My problem is that, I can not extablish some logic around it, so that I can
do it programmatically for any Month-vector and for any Given-date.

Can someone help me to accomplice this?

Hi Christofer,
I would like to be an accomplice in this, but I can't quite work out your logic. I thought that you might want:

IF Given_Date is in the same month as an element of Months

THEN use the year in Given_Date

ELSE use the year in Given_Date plus 1

However, when I programmed it:

assignYear<-function(index_date,months) {
 index_year<-as.numeric(format(index_date,"%Y"))
 index_month<-which(months==format(index_date,"%b"))
 dates<-as.Date(paste(index_year+1,months,"1",sep="-"),"%Y-%b-%d")
 dates[index_month]<-
  as.Date(paste(index_year,months[index_month],"1",sep="-"),"%Y-%b-%d")
 return(format(dates,"%Y-%b"))
}

it didn't work for the second example. Could you give some idea of what you want to do?

Jim

______________________________________________
R-help@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.

Reply via email to