What is XD?
XD stands for extensible time series objects that are designed to be flexible and powerful. They are designed to make using time series easy at the heart of an XDS is a zoo object, a matrix object plus a vector of times corresponding to each row which in turn represents an observation in time. Visually, you can think of this as data plus an array of times.
Creating a Simple Matrix
To illustrate the concept, we'll create a simple matrix called X. Each row of our data is an observation in time. To track these observations, we have dates in an object called IDX. Note that this index must be a true time object, not a string or a number that looks like time.
Choosing a Time Class
XDTS lets you use nearly any time class, such as class date, POSIX times, time.date cron, and more. However, they need to be time-based. Here, we're using our own date objects at this point. Although we don't have a time series yet, we'll need to join these to create our XDS object.
Creating an XDS Object
To do this, we call the XTS constructor with our data X and pass our dates IDX to order by the constructor. The constructor has a few optional arguments, the most useful being T zone to set time zones and unique which will force all times to be unique. Note that XDS doesn't enforce uniqueness for your index but you may require this in your own applications.
Ordering the Index
One thing to note is that your index should be an increasing order of time. Earlier observations should be at the top of your object, and later more recent observations towards the bottom. If you pass in a non-sorted vector X, test will reorder your index and the corresponding rows of your data to ensure that you have a properly ordered time series.
Looking Back
Looking back to the example, we can see that we now have a matrix of values with dates on the left. They may look like row names but remember it's really our index.
What Makes XDS Special?
As I mentioned before, XDS is a matrix that has associated times for each observation. Basic operations work just like they would on a matrix almost one difference you'll note is that subsets will always preserve the object objects matrix form choose one or more than one column always results in another matrix object.
Another difference is that attributes are generally preserved as you work with your data. So, if you store something like a timestamp of when you acquired the data in an XDS attribute subsetting won't cause that information to be lost.
Power of Zoo
Finally, since XDS is a subclass of zoo, you get all of the power of zoo methods for free. We'll see how important this is throughout the course.
Reversing the Steps
Sometimes, it'll be necessary to reverse the steps we took to create the time series and instead extract our raw data or raw times for use in other contexts. XTS provides two functions that we'll cover here: core data is how you get the raw matrix back, and index is how you extract the dates or times.
Core Data
The first function provided by XTS is core data, which is how you get the raw matrix back. This simple and effective way to retrieve your data will be useful in a variety of situations.
Index
The second function provided by XTS is index, which is how you extract the dates or times. Simple and effective, this function allows you to easily access the time-based data that makes up your XDS object.
Getting Started
Now that we've covered the basics of XD s, it's time to get started with creating our own XDS objects. With these tools at our disposal, we'll be able to work with time series data in a flexible and powerful way.
"WEBVTTKind: captionsLanguage: enso what is XD s XD s stands for extensible time series objects that are designed be flexible and powerful designed to make using time series easy at the heart of an X s is a zoo object a matrix object plus a vector of times corresponding to each row which in turn represents an observation in time visually you can think of this as data plus an array of times to illustrate we'll create a simple matrix called X each row of our data is an observation in time to track these observations we have dates in an object called ID X note that this index must be a true time object not a string or a number that looks like time now XTS lets you use nearly any time class be it of class date POSIX times time date cron and more but they need to be time-based here we're using ours date objects at this point though we don't have a time series we'll need to join these to create our XDS object to do this we call the XTS constructor with our data X and pass our dates ID X to order by the constructor has a few optional arguments the most useful being T zone to set time zones and unique which will force all times to be unique note that XDS doesn't enforce uniqueness for your index but you may require this in your own applications one thing to note is that your index should be an increasing order of time earlier observations at the top of your object and later more recent observations towards the bottom if you pass in a non sorted vector X test will reorder your index and the corresponding rows of your data to ensure that you have a properly ordered time series looking back to the example you can see that we now have a matrix of values with dates on the left they may look like row names but remember it's really our index so what makes XTS special as I mentioned before XTS is a matrix that has associated times for each observation basic operations work just like they would on a matrix almost one difference you'll note is that subsets will always preserve the object objects matrix form choose one or more than one column always results in another matrix object another difference is that attributes are generally preserved as you work with your data so if you store something like a timestamp of when you acquired the data in an XD s attribute subsetting won't cause that information to be lost finally since xt s is a subclass of zoo you get all of the power of zoo methods for free we'll see how important this is throughout the course one last point before we break out the exercises sometimes it'll be necessary to reverse the steps we took to create the time series and instead extract our raw data or raw times for use in other contexts XTS provides two functions that we'll cover here core data is how you get the raw matrix back and index is how you extract the dates or times simple and effective now let's get to workso what is XD s XD s stands for extensible time series objects that are designed be flexible and powerful designed to make using time series easy at the heart of an X s is a zoo object a matrix object plus a vector of times corresponding to each row which in turn represents an observation in time visually you can think of this as data plus an array of times to illustrate we'll create a simple matrix called X each row of our data is an observation in time to track these observations we have dates in an object called ID X note that this index must be a true time object not a string or a number that looks like time now XTS lets you use nearly any time class be it of class date POSIX times time date cron and more but they need to be time-based here we're using ours date objects at this point though we don't have a time series we'll need to join these to create our XDS object to do this we call the XTS constructor with our data X and pass our dates ID X to order by the constructor has a few optional arguments the most useful being T zone to set time zones and unique which will force all times to be unique note that XDS doesn't enforce uniqueness for your index but you may require this in your own applications one thing to note is that your index should be an increasing order of time earlier observations at the top of your object and later more recent observations towards the bottom if you pass in a non sorted vector X test will reorder your index and the corresponding rows of your data to ensure that you have a properly ordered time series looking back to the example you can see that we now have a matrix of values with dates on the left they may look like row names but remember it's really our index so what makes XTS special as I mentioned before XTS is a matrix that has associated times for each observation basic operations work just like they would on a matrix almost one difference you'll note is that subsets will always preserve the object objects matrix form choose one or more than one column always results in another matrix object another difference is that attributes are generally preserved as you work with your data so if you store something like a timestamp of when you acquired the data in an XD s attribute subsetting won't cause that information to be lost finally since xt s is a subclass of zoo you get all of the power of zoo methods for free we'll see how important this is throughout the course one last point before we break out the exercises sometimes it'll be necessary to reverse the steps we took to create the time series and instead extract our raw data or raw times for use in other contexts XTS provides two functions that we'll cover here core data is how you get the raw matrix back and index is how you extract the dates or times simple and effective now let's get to work\n"