[R] Function to get a sequence of months

Vladimir Eremeev wl2776 at gmail.com
Tue Sep 11 13:10:04 CEST 2007



Duncan Murdoch-2 wrote:
> 
> On 11/09/2007 6:36 AM, Arun Kumar Saha wrote:
>> Hi all,
>> 
>> I am looking for a function for following calculation.
>> 
>> start.month = "July"
>> end.month = "January"
>> 
>> months = f(start.month, end.month, by=1)
>> 
>> * f is the function that I am looking for.
>> 
>> Actually I want to get months = c("July",
>> "August",.............."January")
>> 
>> If start.month = 6 and end.month = 1 then I could use (not properly)
>> seq()
>> function and then I would get month as a vector with elements 6,5,4,3,2,
>> and
>> 1 by choosing "by=-1". Is there any function which can subsitute the
>> seq()
>> function in my case?
> 
> I don't think one already exists, but it's easy to write one:
> 
>  > cyclic_seq <- function(from, to, cycle=12) {
> +     if (to < from) (from - 1):(to + cycle - 1) %% cycle + 1
> +     else from:to
> + }
>  > cyclic_seq(5, 1)
> [1]  5  6  7  8  9 10 11 12  1
>  > cyclic_seq(5, 5)
> [1] 5
>  > cyclic_seq(5, 6)
> [1] 5 6
> 
> This makes various assumptions about the inputs (e.g. it would fail on 
> cyclic_seq(20, 1) ); you might want to validate the inputs if you're 
> giving it to other people.
> 
> Duncan Murdoch
> 

And the rest would be to use month.name or month.abb variables

month.name[cyclic_seq(7,1)]
-- 
View this message in context: http://www.nabble.com/Function-to-get-a-sequence-of-months-tf4421709.html#a12612421
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list