Skip to content

CRAN release 0.12.2

Compare
Choose a tag to compare
@joshuaulrich joshuaulrich released this 16 Oct 00:43

Changes to plotting functionality

  • You can now omit the data time range from the upper-right portion of a plot by setting main.timespan = FALSE. (#247)

  • Fix addEventLines() when plotted objects have a 'yearmon' index. The ISO-8601 range string was not created correctly. Thanks to @paessens for the report. (#353)

  • Make ylim robust against numerical precision issues by replacing == with all.equal(). Thanks to @bollard for the report, PR, and a ton of help debugging intermediate solutions! (#368)

  • Series added to a panel now extend the panel's y-axis. Previously the y-axis limits were based on the first series' values and not updated when new series were added. So values of the new series did not appear on the plot if they were outside of the original series' min/max. Thanks to Vitalie Spinu for the report and help debugging and testing! (#360)

  • All series added to any panel of a plot now update the x-axis of all panels. So the entire plot's x-axis will include every series' time index values within the original plot's time range. This behavior is consistent with chart_Series(). Thanks to Vitalie Spinu for the report and help debugging and testing! (#360, #216)

  • All y-values are now plotted for series that have duplicate index values, but different data values. Thanks to Vitalie Spinu for the report and help debugging and testing! (#360)

  • Adding a series can now extend the x-axis before/after the plot's existing time index range, so all of the new series' time index values are included in the plot. This is FALSE by default to maintain backward compatibility. Thanks to Vitalie Spinu for the report and help debugging and testing! (#360)

  • plot.xts() now has a yaxis.ticks argument to control the number of y-axis grid lines, instead of always drawing 5 grid lines. Thanks to Fredrik Wartenberg for the feature request and patch! (#374)

Other changes

  • Ops.xts() no longer changes column names (via make.names()) when the two objects do not have identical indexes. This makes it consistent with Ops.zoo(). (#114)

  • Subsetting a zero-length xts object now returns an object with the same storage type as the input. It previously always returned a 'logical' xts object. (#376)

  • tclass() and tzone() now return the correct values for zero-length xts objects, instead of the defaults in the .xts() constructor. Thanks to Andre Mikulec for the report and suggested patch! (#255)

  • first() and last() now return a zero-length xts object when n = 0. They previously returned the entire object. This is consistent with the default head() and tail() functions, and data.table's first() and last() functions. Thanks to Ethan B. Smith for the report and patch! (#350)

  • Subsetting a zero-width xts now returns an object with the same class, tclass, tzone, and xtsAttributes as the input. Thanks to @shikokuchuo for the report! (#359)

  • endpoints() now always returns last observation. Thanks to GitHub user Eluvias for the report. (#300)

  • Ensure endpoints() errors for every 'on' value when k < 1. It was not throwing an error for k < 1 for on of "years", "quarters", or "months". Thanks to Eluvias for the report. (#301)

  • Fix window() for yearmon and yearqtr indexes. In xts < 0.11-0, window.zoo() was dispatched when window() was called on a xts object because there was no window.xts() method. window.zoo() supports additional types of values for the start argument, and possibly other features. So this fixes a breaking change in xts >= 0.11-0. Thanks to @annaymj for the report. (#312)

  • Clarify whether axTicksByTime() returns index timestamps or locations (e.g. 1, 2, 3). Thanks to @ggrothendieck for the suggestion and feedback. (#354)

  • Fix merge on complex types when 'fill' is needed. merge() would throw an error because it treated 'fill' as double instead of complex. Thanks to @ggrothendieck for the report. (#346)

  • Add a message to tell the user how to disable 'xts_check_TZ' warning. Thanks to Jerzy Pawlowski for the nudge. (#113)

  • Update rbind() to handle xts objects without dim attribute. rbind() threw an obscure error if one of the xts objects does not have a dim attribute. We can handle this case even though all xts objects should always have a dim attribute. (#361)

  • split.xts() now always return a named list, which makes it consistent with split.zoo(). Thanks to Gabor Grothendieck for the report. (#357)

  • xts objects with a zero-length POSIXct index now return a zero-length POSIXct vector instead of a zero-length integer vector. Thanks to Jasper Schelfhout for the report and PR! (#363, #364)

  • Add suffixes to output of merge.xts(). The suffixes are consistent with merge.default() and not merge.zoo(), because merge.zoo() automatically uses "." as a separator between column names, but the default method doesn't. Thanks to Pierre Lamarche for the nudge. Better late than never? (#38, #371)