From 08fb862d77bf8b9db0b2f41ec665af7ffbc1636d Mon Sep 17 00:00:00 2001 From: Joshua Ulrich Date: Tue, 11 Apr 2023 12:06:32 -0500 Subject: [PATCH] Bump version and update news --- DESCRIPTION | 2 +- NEWS | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 19f63c54..2fd4d951 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -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"), diff --git a/NEWS b/NEWS index e8bbd940..126eceb7 100644 --- a/NEWS +++ b/NEWS @@ -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: