# trouble with timeSequence

3 messages
Open this post in threaded view
|
Report Content as Inappropriate

## trouble with timeSequence

 Hi! I was trying to use the function "timeSequence" in order to generate a sequence of dates at 6 months frequency but I could not. In order to obtain 3 month frequency I wrote this: ---------------- timeSequence(from = "1999-12-31", to = "2000-12-31", by = "quarter") ------------ which delivers the exact output: ---------- GMT [1] [1999-12-31] [2000-03-31] [2000-07-01] [2000-10-01] [2000-12-31] ------------ If I try to obtain the 6 month frequency, I write the following (after having read the help file): --------------------------------- timeSequence(from = "1999-12-31", to = "2000-12-31", by = "6 months") ----------------------------- which returns: ---------------------- error in match.arg(by) :   'arg' should be one of "day", "year", "quarter", "month", "week", "hour", "min", "sec" --------------------- so I took a look to the code behind the function 'timeSequence' (see below). The function "match.arg(by)" checks that  "by" equals one of: "day", "year", "quarter", "month", "week", "hour", "min", "sec" however the computation (as far as I understood) is made by another function (?): "seq.timeDate" which apparently accepts the value " by = "3 months" ". What puzzles me is that whe I try to call the function "seq.timeDate"  R answers me that it cannot find it. Of course I could be able to construct a time sequence with 6 month frequency with some workaround, however I would like to understand the problem a little more. Thank you for any help! Kind regards Danilo ------------------------------------------------------------------------------------------------------------------- > timeSequence function (from, to = Sys.timeDate(), by = c("day", "year", "quarter",     "month", "week", "hour", "min", "sec"), length.out = NULL,     format = NULL, zone = "", FinCenter = "") {     if (zone == "")         zone <- getRmetricsOptions("myFinCenter")     if (FinCenter == "")         FinCenter <- getRmetricsOptions("myFinCenter")     if (missing(from))         from = timeDate(to, format = format, zone = zone, FinCenter = FinCenter) -             24 * 29 * 3600     if (!is.null(length.out))         to = from     by = match.arg(by)     if (by == "quarter")         by = "3 months"     format.from = format.to = format     if (is.null(format)) {         format.from = whichFormat(as.character(from))         format.to = whichFormat(as.character(to))         from <- timeDate(from, format = format.from, zone = zone,             FinCenter = FinCenter)         to <- timeDate(to, format = format.to, zone = zone, FinCenter = FinCenter)     }     else {         from <- timeDate(from, format = format, zone = zone,             FinCenter = FinCenter)         to <- timeDate(to, format = format, zone = zone, FinCenter = FinCenter)     }     tseq <- if (length(length.out))         seq.timeDate(from = from, by = by, length.out = length.out)     else seq.timeDate(from = from, to = to, by = by)     tseq } Dr. Danilo Mercurio Quantitative Analyst Erste Sparinvest Global Strategies and Research Habsburgergasse 2 A-1010 Wien Tel.:   +43 (0) 50100 - 19957 Fax.:  +43 (0) 50100 9 - 19957 Mob.: +43 (0) 50100 6 - 19957 _______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance-- Subscriber-posting only. If you want to post, subscribe first. -- Also note that this is not the r-help list where general R questions should go.
Open this post in threaded view
|
Report Content as Inappropriate

## Re: trouble with timeSequence

 On Sep 21, 2010, at 5:55 PM, Mercurio Danilo 1850 SPI wrote: > Hi! > > I was trying to use the function "timeSequence" in order to generate a sequence of dates at 6 months frequency but I could not. > > In order to obtain 3 month frequency I wrote this: > > ---------------- > timeSequence(from = "1999-12-31", to = "2000-12-31", by = "quarter") > ------------ > > which delivers the exact output: > > ---------- > GMT > [1] [1999-12-31] [2000-03-31] [2000-07-01] [2000-10-01] [2000-12-31] > ------------ > > If I try to obtain the 6 month frequency, I write the following (after having read the help file): > > --------------------------------- > timeSequence(from = "1999-12-31", to = "2000-12-31", by = "6 months") > ----------------------------- > > which returns: > ---------------------- > error in match.arg(by) : >  'arg' should be one of "day", "year", "quarter", "month", "week", "hour", "min", "sec" > --------------------- > > so I took a look to the code behind the function 'timeSequence' (see below). > The function "match.arg(by)" checks that  "by" equals one of: > "day", "year", "quarter", "month", "week", "hour", "min", "sec" > > however the computation (as far as I understood) is made by another function (?): "seq.timeDate" which apparently accepts > the value " by = "3 months" ". Hi, try fhe following td1 <- timeDate("1999-12-31") td2 <- timeDate("2000-12-31") seq(td1, td2, by = "6 months") HTH Yohan > > What puzzles me is that whe I try to call the function "seq.timeDate"  R answers me that it cannot find it. > > Of course I could be able to construct a time sequence with 6 month frequency with some workaround, however I would like > to understand the problem a little more. > > Thank you for any help! > > Kind regards > > Danilo > > ------------------------------------------------------------------------------------------------------------------- >> timeSequence > function (from, to = Sys.timeDate(), by = c("day", "year", "quarter", >    "month", "week", "hour", "min", "sec"), length.out = NULL, >    format = NULL, zone = "", FinCenter = "") > { >    if (zone == "") >        zone <- getRmetricsOptions("myFinCenter") >    if (FinCenter == "") >        FinCenter <- getRmetricsOptions("myFinCenter") >    if (missing(from)) >        from = timeDate(to, format = format, zone = zone, FinCenter = FinCenter) - >            24 * 29 * 3600 >    if (!is.null(length.out)) >        to = from >    by = match.arg(by) >    if (by == "quarter") >        by = "3 months" >    format.from = format.to = format >    if (is.null(format)) { >        format.from = whichFormat(as.character(from)) >        format.to = whichFormat(as.character(to)) >        from <- timeDate(from, format = format.from, zone = zone, >            FinCenter = FinCenter) >        to <- timeDate(to, format = format.to, zone = zone, FinCenter = FinCenter) >    } >    else { >        from <- timeDate(from, format = format, zone = zone, >            FinCenter = FinCenter) >        to <- timeDate(to, format = format, zone = zone, FinCenter = FinCenter) >    } >    tseq <- if (length(length.out)) >        seq.timeDate(from = from, by = by, length.out = length.out) >    else seq.timeDate(from = from, to = to, by = by) >    tseq > } > > Dr. Danilo Mercurio > Quantitative Analyst > Erste Sparinvest > Global Strategies and Research > Habsburgergasse 2 > A-1010 Wien > Tel.:   +43 (0) 50100 - 19957 > Fax.:  +43 (0) 50100 9 - 19957 > Mob.: +43 (0) 50100 6 - 19957 > > _______________________________________________ > [hidden email] mailing list > https://stat.ethz.ch/mailman/listinfo/r-sig-finance> -- Subscriber-posting only. If you want to post, subscribe first. > -- Also note that this is not the r-help list where general R questions should go. > -- PhD candidate Swiss Federal Institute of Technology Zurich www.ethz.ch _______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance-- Subscriber-posting only. If you want to post, subscribe first. -- Also note that this is not the r-help list where general R questions should go.