# Time Series Sequence

0

I would like to create several time sequence where each value is 6 months later than the previous one. For example January 1st, 2010; July 1st, 2010; January 1st, 2011;.....

I have created a loop that does this but I have problems if I start the sequence with July 1st, 2010 for example. Thank you.

pvg
2

0

Are you trying to create a vector of dates in dt scalar format? Like this:

my_date =
20100701
20110101
20110701
20120101

Numbers in this format can be used with the plotTS function and also converted to strings for printing with the dtToStr function like this:

print dtToStr(20100701, "YYYY-MO-DD");

returns:

2010-07-01

or like this:

print dtToStr(20100701, "MO/YYYY");

produces:

07/2010
aptech
615
0

Yes, I'm trying to create a long vector such as "my_date". Any ideas? Thank you.

pvg
2
0

The functions that work with dt scalar format treat 20080101 and 200801 both as January 1st, 2008. So if your date will always be the first day of the month you don't have to specify it. Since that is slightly simpler to look at my examples will assume that.

You can put this all on one line (or put it in a procedure so that you don't have to remember the details), but we will go through it in a more verbose fashion to make everything explicit and easy to follow.

1. Create a vector with the years.
num_years = 9;

//Create the additive sequence 2006, 2007, 2008...
dt_vec = seqa(2006, 1, num_years);

2. Create a vector of the same length as your dt_vec date sequence containing the months (i.e. alternating 1 and 7)
months = { 1, 7 };
months = reshape(months, num_years, 1);

3. Multiply the years by 10 to make room for the months (i.e. 2006 to 200600)
dt_vec = dt_vec * 10;

dt_vec = dt_vec + months;

Or you could use a more condensed version like this:

num_years = 9;
dt_vec = seqa(2006, 1, num_years) * 10 + reshape(1|7, num_years, 1);

If I was going to do this a lot, I would create a procedure that I could call like this:

dt_vec = seqDate(first_year, month_increment, num_years);

That would be pretty simple to do starting from the code above. The only problem is that it will always start in January and you may not want that. You could either modify the procedure to deal with that, or just use the trimr function to trim off the first few rows that you don't want. Feel free to post if you would like help with something like this.

aptech
615
0

Thank you. That could work.

pvg
2

• ### Aptech Systems, Inc. Worldwide Headquarters

Aptech Systems, Inc.
2350 East Germann Road, Suite #21
Chandler, AZ 85286

Phone: 360.886.7100
FAX: 360.886.8922

• ### Training & Events

Want more guidance while learning about the full functionality of GAUSS and its capabilities? Get in touch for in-person training or browse additional references below.

• ### Tutorials

Step-by-step, informative lessons for those who want to dive into GAUSS and achieve their goals, fast.

• ### Have a Specific Question?

Get a real answer from a real person

• Need Support?
• ### Support Plans

Premier Support and Platinum Premier Support are annually renewable membership programs that provide you with important benefits including technical support, product maintenance, and substantial cost-saving features for your GAUSS System or the GAUSS Engine.

• ### User Forums

Join our community to see why our users are considered some of the most active and helpful in the industry!