← Back to all sparks
X

xts

ANALYTICS
Velocity0.0

eXtensible Time Series

xts is finished software, and its releases now track R's C API more than user requests.

rtime-seriesfinancec-apimaintenance
Current state
xts is the time-series class underpinning much of R's financial stack, and it behaves like infrastructure: the visible releases are bug fixes, plotting repairs and conformance work. A recurring thread is removing calls R no longer considers public — SET_TYPEOF in 0.14.0 and 0.14.1, then ATTRIB() and SET_ATTRIB() in 0.14.2. Feature additions are rare and small, the last cluster being open-ended time-of-day subsetting and na.fill performance in 0.13.0.
Where it's heading
Two forces drive releases. R core keeps narrowing its public C API, and xts keeps rewriting internals to stay inside it; separately, ggplot-era changes elsewhere in the ecosystem surface plotting bugs that get fixed one report at a time. Nearly every entry credits an outside reporter, which is what maintenance of a dependency this widely used looks like.
Prediction
Further C API conformance work is the safest expectation, since two consecutive releases have each removed a different non-API entry point and R has continued tightening that boundary.

Recent moves

  1. 5mo ago

    multi.panel plots beyond 8 columns; SET_TYPEOF removed from C

    Fixes plot.xts dropping columns 9 and later under multi.panel because the default col was 1:8, plus a constant-negative ylim error. Also drops SET_TYPEOF from C and stops merge.xts coercing unused double inputs to integer. Note the feed stamps this before 0.14.2 despite the version order.

    View source ↗
  2. 5mo ago

    ATTRIB removed from C; rollapply.xts accepts vector widths

    Removes ATTRIB() and SET_ATTRIB() as non-public R API, fixes an endpoints() crash on a zero-length index, and finally lets rollapply.xts take a numeric width vector the way rollapply.zoo does. The rollapply gap had been open since issue 290.

    View source ↗
  3. 2y ago

    Multi-panel event lines; first SET_TYPEOF replacement

    Multi-panel drawing for addEventLines() and addLegend(), a crash fix for fractional 'j' subscripts, and the first SET_TYPEOF replacement — made after it started erroring on REAL-to-INTEGER conversion. The C API thread starts here.

    View source ↗
  4. 2y ago

    tclass changes now alter index values; log-scale y-axis added

    Changing tclass from a timezone-carrying class to one without now actually changes the underlying index values, with a warning — a silent-results change for anyone relying on the old behavior. Also adds log-scale y-axes, warns that period.apply with FUN = mean averages per column, and refactors plot.xts internals.

    View source ↗
  5. 3y ago

    Update path for pre-0.12 objects missing index attributes

    Handles xts objects created before tclass and tzone moved onto the index, adding an update function and cutting repeated warnings from check.TZ(). Compatibility work for objects saved years earlier, plus S3 method registration for R-devel.

    View source ↗
  6. 3y ago

    Open-ended time-of-day subsetting; fast scalar na.fill

    The last substantial feature batch in the window: open-ended time-of-day subsetting such as x["/T1800"], a fast na.fill method for scalar fills, as.xts finding a time column when row names fail, and truncated printing for large objects. Everything after this is repair.

    View source ↗