Skip to content

Commit

Permalink
Bump version and update news
Browse files Browse the repository at this point in the history
  • Loading branch information
joshuaulrich committed Apr 11, 2023
1 parent 7745c6b commit 08fb862
Show file tree
Hide file tree
Showing 2 changed files with 105 additions and 1 deletion.
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Package: xts
Type: Package
Title: eXtensible Time Series
Version: 0.13.0.3
Version: 0.13.1
Authors@R: c(
person(given=c("Jeffrey","A."), family="Ryan", role=c("aut","cph")),
person(given=c("Joshua","M."), family="Ulrich", role=c("cre","aut"), email="josh.m.ulrich@gmail.com"),
Expand Down
104 changes: 104 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,107 @@
################################################################################
Changed in xts 0.13.1:

o Ignore attribute order in `all.equal()`. Attribute order shouldn't matter.
That can be checked with `identical()`.

o Only call `tzone()` and `tclass()` once in `check.TZ()`. Calling these
functions multiple times throws multiple warnings for xts objects created
before the tclass and tzone were attached to the index instead of the xts
object. (#306)

o Add instructions to update old objects. Old xts objects do not have tclass
and tzone attributes on the index. Add a function to update the object
attributes and add a note to the warning to show how to use it. (#306)

o Return 'POSIXct' if object has no 'tclass'. An empty string is not a valid
'tclass', so it can cause an error.

o Add notes on `plot.xts()` nomenclature and structure. Also add ASCII art to
illustrate definitions and layout. (#103)

o Remove 'tis' support. The implementation was not even a bare minimum, and
it's not clear it even worked correctly. (#398)

o Register missing S3 methods and update signatures. With R-devel (83995-ish),
`R CMD check` notes these S3 methods are not registered. It also notes that
the signatures for `as.POSIXct.tis()` and `str.replot_xts()` do not match
the respective generics.

It also thinks `time.frequency()` is a S3 method because `time()` is a
generic. The function isn't exported, so renaming won't break any external
code. Thanks to Kurt Hornik for the report. (#398)

o Format each column individually before printing. The top/bottom rows could
have a different number of decimal places and there are often multiple
variying spaces between columns. For example:

close volume ma bsi
2022-01-03 09:31:00 476.470 803961.000 NA 54191.000
2022-01-03 09:32:00 476.700 179476.000 NA 53444.791
2022-01-03 09:33:00 476.540 197919.000 NA -16334.994
...
2023-03-16 14:52:00 394.6000 46728.0000 392.8636 28319.4691
2023-03-16 14:53:00 394.6500 64648.0000 392.8755 15137.6857
2023-03-16 14:54:00 394.6500 69900.0000 392.8873 -1167.9368

There are 4 spaces between the index and the 'close' column, 2 between
'close' and 'volume', 4 between 'volume' and 'ma', and 2 between 'ma' and
'bsi'. There should be a consistent number of spaces between the columns. Most
other classes of objects print with 1 space between the columns.

The top rows have 3 decimals and the bottom rows have 4. These should also be
the same. (#321)

o Only convert printed index values to character. Converting the entire index
to character is time-consuming for xts objects with many observations. It can
take more than a second to print an xts object with 1mm observations.

o Make column names based on number of columns. The original code was a lot
more complicated because it tried to account for truncating the number of
printed columns. That functionality was removed because of how complicated
it was. So now we can simply create printed column names from the number of
columns. (#395)

o Fix `xts()` for zero-row data.frame. The `xts()` constructor would create an
object with a list for coredata when 'x' is a data.frame with no rows. It
needs to convert 'x' to a matrix and throw an error if 'x' is a list. (#394)

o Reduce instances when `dplyr::lag()` warning is shown. The warning was shown
whenever it detected dplyr is installed, even if the user wasn't actively
using dplyr. That caused an excessive amount of noise when other packages
attached xts (e.g. quantmod). Thanks to Duncan Murdoch for the report and
suggested fix! (#393)

o Keep colname when only one non-time-based column. The subset `x[, -which.col]`
would return a vector when the data frame has a time-based column and only
one additional column. Do not drop dimensions, so 'x' will still be a
data.frame in this case. (#391)

o Treat NA the same as NULL for start or end values. NULL represents an
undefined index value. NA represents an unknown or missing index value. xts
does not allow NA as index values. Subsetting an xts or zoo object by NA
returns a zero-length object. So a NA (unknown) index value is essentially
the same as an undefined index value. (#383, #345)

o Warn and remove NA when `periodicity()` called on date-time with NA.
Otherwise the uninformative error below will be thrown. (#289)

Error in try.xts(x, error = "'x' needs to be timeBased or xtsible") :
'x' needs to be timeBased or xtsible

o Account for TZ when making names for `split.xts()`. `as.yearmon.POSIXct()`
always sets `tz = "GMT"` when calling `as.POSIXlt()`, regardless of the xts'
index tzone. That can cause the `as.yearmon()` results to be different days
for GMT and the index's timezone.

Use `format.POSIXct()` for "months" because it checks for a 'tzone' attribute
before converting to POSIXlt and calling `format.POSIXlt()`. The conversion
to POSIXlt is important because it checks and uses the 'tzone' attribute
before considering the 'tz' argument. So it effectively ignores the
`tz = "GMT"` setting in `as.yearmon()`. This is also the reason for calling
`as.POSIXlt()` before calling `as.yearqtr()`. (#392)


################################################################################
Changed in xts 0.13.0:

Expand Down

0 comments on commit 08fb862

Please sign in to comment.