On Fri, Oct 10, 2014 at 7:28 AM, Abhinaba Roy <abhinabaro...@gmail.com> wrote: > Hi R helpers, > > I want to write a function which will > > 1. Count the number of fridays in the current month ( to extract month from > given date) and also the number of fridays in the preceeding month > > 2. Calculate the ratio of the number of fridays in current month to the > number of fridays in the precceding month > > 3. Return a integer value calculated as > ifelse(ratio>1,1,ifesle(ration<1,-1),0) > > The date which is passed is in the format *'31-may-2014'* > > So, given the date '31-may-2014' > > Number of fridays in May2014 = 5 > Number of fridays in Apr2014 = 4 > > Ratio = 5/4 >1 > Hence, the function will return a value 1 > > I want to call the function by passing '31-may-2014' as an argument
If d is a "Date" class variable equal to a month end date, e.g. d <- as.Date("31-may-2014", format = "%d-%b-%Y") then this gives the ratio of the number of Fridays in d's month to the number of Fridays in the prior month: days <- seq(as.Date(cut(d - 32, "month")), d, "day") ratio <- exp(diff(log(tapply(format(days, "%w") == 5, format(days, "%Y%m"), sum)))) Now apply the formula in your point 3 to ratio and put it all in a function. -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ 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.