forked from joshuaulrich/xts
-
Notifications
You must be signed in to change notification settings - Fork 2
/
DEVELOPMENT-NOTES
50 lines (38 loc) · 2.08 KB
/
DEVELOPMENT-NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Development Version Notes and CHANGELOG
Purpose:
To provide a faster implementation of time-based subsetting, as
well as a more memory efficient implementation.
How:
Since the xts object is ordered by design, we are implementing
a number of standard algorithms to improve both search and
database style queries.
A simple binary search to provide near instant access to range
based time-queries has been incorporated. This is designed to be similar in at least one
dimension (time subsetting) to Matt Dowle's impressive data.table
functionality.
Additionally it is a test of converting the now flexible user-specified
indexing class into an internal integer/double representation. This will
allow for minimal additional conversions to a universal POSIXct style index
which once again will translate into lookups that are nearly instantaneous.
An additional benefit of even our initial implementation will be
the drastic minimization of internal copying that needs to take place.
This means that larger data can be handled in-memory.
We will also be adding more facilities for high frequency data
management. As well as using large data to benchmark and improve
the base xts functionality.
RELEASED!
IMPLEMENTED CHANGES:
Internal structure now includes a numeric conversion of POSIXct as the index
with an .indexClass and .indexFormat attribute system to provide seemless
timeBased-class like behavior, yet with a more efficient and memory-friendly
construction.
New subset.c, rbind.c, and merge.c code to handle [.xts, c.xts, rbind.xts, cbind.xts
and merge.xts operations.
Speed improvements range from 30-13000x over similar operations when compared
to other popular R-based time-series tools.
Additional C and R code has been added to speed up diff() and lag() operations,
as well as provide basic Ops tools that are as fast or faster than native
data-type operations, while maintaining all the functionality of xts.
xts now uses very little of zoo for basic functionality, though many zoo methods are
left as primary methods for xts (though standard S3 inheritence). zoo is standard
for interface and functionality.