On Wed, 8 Oct 2014 04:49:02 PM Frederic Ntirenganya wrote: > The idea is that I want the non-leap years to be 366 days instead of being > 365 days. ie. Each year must have 366 days. > > for example: in the column Start2, Apr 18 will be Apr 17. > > > head(Samaru) > > Year Start End Length Start2 End2 > 1 1930 108 288 180 Apr 18 Oct 15 > 2 1931 118 288 170 Apr 28 Oct 15 > 3 1932 115 295 180 Apr 24 Oct 21 > 4 1933 156 294 138 Jun 05 Oct 21 > 5 1934 116 291 175 Apr 26 Oct 18 > 6 1935 134 288 154 May 14 Oct 15 > > Is there a way to that in R? > Hi Frederic, That doesn't sound like a good idea to me. Instead of having about one quarter of the dates wrong, you will have about three quarters wrong. When I check the code I sent you:
Samaru$Start<-format(as.Date( paste(Samaru$Year,"01-01",sep="-"))+Samaru$Start-1,"%b %d") Samaru$End<-format(as.Date( paste(Samaru$Year,"01-01",sep="-"))+Samaru$End-1, "%b %d") it appears to correct for leap years. If you really want to do it yourself, you can get a list of leap years here: http://kalender-365.de/leap-years.php I think the simplest way is to correct your Start and End fields before doing the calculation: # create a vector of leap years leap_years<-c(1804,1808,1812,1816,1820,1824,1828,...,2400) # subtract 1 from Start entries in leap years and # equal to or greater than 1 March Samaru$Start<-Samaru$Start - (Samaru$Year %in% leap_years & Samaru$Start > 59) # same for End Samaru$End<-Samaru$End - (Samaru$Year %in% leap_years & Samaru$End > 59) However, I don't think you have to worry about leap years if you are using the code I sent. 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.