Changelog
Source:NEWS.md
zoo 1.9-0 (2026-07-30)
CRAN release: 2026-07-31
Code repository changed from R-Forge to Codeberg at: https://codeberg.org/zeileis/zoo/
Turned all vignettes (except the Journal of Statistical Software paper) from Rnw to Rmd format with HTML output.
Added altdoc-based website with overview, documentation, and vignettes at: https://zeileis.codeberg.page/zoo/
When coercing
timeSeriesobjects tozooit has long not been necessary to employtimeSeries::time()but instead the basestats::time()generic can be used (reported by Georgi Boshnakov).The case of
read.zoo(file, index.column = 0)is handled correctly now iffileis already adata.frame.Updated
structure()calls to usenames = ...instead of.Names = ...etc.Fixed errors due to unprotected variable index in
zoo_lagin C.
zoo 1.8-15 (2025-12-15)
CRAN release: 2025-12-15
- Documentation fix in BibTeX files requested by CRAN: Use
doifield rather thanurlfor DOIs, and updates to various URLs.
zoo 1.8-14 (2025-04-10)
CRAN release: 2025-04-10
In the
scale_x_yearmon()function thescale_x_continuous()function is now called withtransformargument rather than the oldtransargument (deprecated sinceggplot23.5.0). The analogous changes are made forscale_y_*andyearqtr. (Patch provided by Jari Karppinen.)Improve example with AM/PM times in
vignette("zoo-read", package = "zoo"): The%pspecification for the AM/PM indicator should be combined with%I(and not%H) for the hours in 01-12 (rather than 00-23). (Reported by Brian D. Ripley.)In the C code use the
isS4()API rather thanIS_S4_OBJECT().In
vignette("zoo-quickref", package = "zoo")update the Yahoo! Finance example (using the MSFT symbol instead of the discontinued SUNW symbol) and omit the Oanda example (because the Oanda service has been discontinued). (Reported by Robert Woodman.)
zoo 1.8-13 (2025-02-22)
CRAN release: 2025-02-22
New
tinyplot()method for"zoo"objects that is similar to theautoplot()method but employs thetinyplotpackage rather thanggplot2for drawing.In
"yearmon"and"yearqtr"try harder to assure that the underlying vector type remains numeric (without getting coerced). Also added nicer handling and printing of zero-length"yearmon"/"yearqtr"vectors and added a[<-method for"yearmon"and"yearqtr"objects and (suggested by Kyle F. Butts).The
diff()method for"zoo"objects gained the argumentlog = FALSEso thatdiff(x, log = TRUE)can also be used instead ofdiff(log(x)).The
as.vector()method for"zoo"objects now applies tocoredata()directly rather than going throughas.matrix(). The latter was used in previous versions setting up unnecessary additional row/column names etc. with unnecessary computational overhead. (Reported by Ethan Smith at https://github.com/joshuaulrich/xts/issues/406.)In
write.zoo(), by default, the index is formatted usingformat()rather thanas.character()now (reported in https://stackoverflow.com/questions/77553026). Alternatively, the functionFUNto format the time index can also be specified by the user.The
zoodocumentation had aliases forhead.tsandtail.ts, although these methods were only very briefly part of thezoodevelopment version and never released. The aliases have been removed now and the basestatspackage will actually providehead.tsandtail.tsstarting from R 4.5.0.
zoo 1.8-12 (2023-04-13)
CRAN release: 2023-04-13
The
autoplot()method for"zoo"objects now usesggplot()directly rather than theqplot()function which has been deprecated in recent versions ofggplot2.Support start = NA and end = NA in addition to start = NULL and end = NULL for unspecified start and end time of a window() of a zoo series.
Remove unnecessary S3 method declarations for
axis.yearmon/yearqtrasaxis()is no S3 generic, onlyAxis()is (reported by Kurt Hornik).The helper function
index2char()now callsformat()instead ofas.character()for objects inheriting from class POSIXt.
zoo 1.8-11 (2022-09-17)
CRAN release: 2022-09-17
The
as.ts()methods for both"zoo"and"zooreg"objects now allow to pass on thefillargument (through...) to the underlyingmerge()call. Thus, you can sayas.ts(z, fill = 0)to fill potential gaps with0s instead ofNAs.The
na.spline()method for"ts"objects had been provided internally in the package but has only been correctly registered in theNAMESPACEnow.The
merge()method gained asep = "."argument to optionally use a different separator character when making pasting suffixes to column names for making them unique (suggested by Joshua Ulrich).The
MATCH()methods for"Date"/"POSIXct"/"POSIXlt"object now coerce thetableargument (if necessary) to"Date"or"POSIXct", respectively, before callingmatch(unclass(x), unclass(table), ...)internally.In case of a
"Date"/"POSIXct"/"POSIXlt"tableand a plain atomic argumentx, the defaultMATCH()method coercesxto"Date"or"POSIXct", respectively, before callingmatch(unclass(x), unclass(table), ...)internally.As the
ftspackage has been archived on CRAN for several months, it has been excluded from theSuggestsof the package. Theas.zoo()method forftsobjects continues to be part of the package, though, just the hyperlinks in the documentation have been removed.
zoo 1.8-10 (2022-04-15)
CRAN release: 2022-04-15
The
transform()method now internally uses a list of"zoo"series (as opposed to a data frame of numeric variables, as used in previous versions). This means that the transformations can really operate on full"zoo"series.Added
MATCH()methods for classes"Date","POSIXct", and"POSIXlt", all of which essentially match the underlying numeric vector (suggested by Kurt Hornik).In
zooreg()thets.epsargument is now also used (in squares) as the tolerance in theall.equal()comparisons used to determine the underlying regular time grid.
zoo 1.8-9 (2021-03-09)
CRAN release: 2021-03-09
Added a basic
boxplot(x, ...)method for"zoo"objects that simply callsboxplot(coredata(x), ...).Bug fix in
[and[<-methods where indexing with matrices did not work correctly anymore in R 4.x.y because"matrix"objects now additionally inherit from"array"objects (reported by Bill Cunliffe).Improved internal functionality in
na.spline.defaultin the same wayna.approx.defaultwas enhanced in zoo 1.7-14 and 1.7-13. One difference is that whilena.approx()requires at least two non-NAobservations,na.spline()just needs one non-NAobservation (using a constant to interpolate in that case).If the
FUNinrollapply()returns a matrix or data frame with more than one row per element/time point, then this is flattened now so that the result is again a matrix with one row per element/time point.merge()method now handles the case of all indexes being integer or numeric by coercing the integer indexes to numeric (reported by Simone Giannerini).zooreg()now allows to create an integer index ifstart(andend, if any) are integer and the implieddeltatis not numerically different from an integer value.
zoo 1.8-8 (2020-05-02)
CRAN release: 2020-05-02
diff.zoo(x, arithmetic = FALSE)now also works ifxcontains negative data.merge()method now handles the combination of"Date"and numeric indexes explicitly to work around the new behavior ofc.Datein R >= 4.1.0.
zoo 1.8-7 (2020-01-10)
CRAN release: 2020-01-10
Added
scale_type()methods for"yearmon"/"yearqtr"to facilitateggplot2visualizations of"zoo"series with"yearmon"/"yearqtr"time index (suggested by Brian Diggs). This requires at leastggplot23.0.0.In
merge()method"character"columns are now processed in the same way as"logical"columns.Replaced the “fruitohms” example in the “zoo” vignette because the corresponding
DAAGpackage is not actively maintained on CRAN anymore. Instead the “Journals” data from theAERpackage is used.
zoo 1.8-6 (2019-05-28)
CRAN release: 2019-05-28
Adding a zero-width
"zoo"series via$<-to an existing"zoo"series erroneously changed the last column name. This has been fixed now (prompted by https://github.com/joshuaulrich/xts/issues/45).Set random seed (along with
suppressWarnings(RNGversion("3.5.0"))) in all manual pages that usernorm()as well. Regenerated reference output of examples.
zoo 1.8-5 (2019-03-21)
CRAN release: 2019-03-21
Added dedicated
diff()methods for"yearmon"and"yearqtr"objects.Fix potential problems when logic comparisons in
if()are not of length1(reported by Kurt Hornik).Fix potential protect calls found by rchk.
ScalarInteger()andMAKE_CLASS()potentially allocate (reported and patched by Kurt Hornik).Set
useDynamicSymbolstoFALSEas it is better practice to not allow the DLL to be searched for entry points via strings (suggested by Kurt Hornik).Replace
as.zoo.xtswithxts:::as.zoo.xts. Bothzooandxtsregister anas.zoo.xtsmethod with thextsversion being slightly better. Hence thezooversion was replaced with thextsversion as the package that owns the class should define the conversion method.read.zoo(x)did not process columns correctly who had column names that are intergers in1:ncol(x).Add example on
?ggplot2.zoothat illustrates how to usescale_x_yearmonfor a discrete labeling (rather than continuous). Adapted from: https://stackoverflow.com/questions/54591625/missing-yearmon-labels-using-ggplot-scale-x-yearmon/54592173#54592173Added
suppressWarnings(RNGversion("3.5.0"))in all vignettes and manual pages that useset.seed()to make computations reproducible. This is necessitated by recent (> 3.5.0) improvements in R’s default RNG to yield the same output in all CRAN checks.Added
maxgap = Infargument tona.trim(). In particularna.approx()andna.spline()now pass onmaxgap = maxgaptona.trim()so that leading/trailingNAs are handled consistently with innerNAs (pointed out by Ken Williams).
zoo 1.8-4 (2018-09-19)
CRAN release: 2018-09-19
- Conditional registration of S3 methods simplified in R-devel (aka 3.6.0-to-be) which is leveraged in
"zoo"for theautoplot()andfortify()methods ifggplot2is loaded.
zoo 1.8-3 (2018-07-16)
CRAN release: 2018-07-16
The
widthargument inrollapply()is nowtrunc()-ated to an integer rather than implicitly coercing it (which lead to inconsistent and/or unintended behavior for non-integer widths in previous versions). Analogously for argumentkin the otherroll*()functions.Consistently use
read.zoo(text = ...)andread.table(text = ...)instead ofread.zoo(textConnection(...))andread.table(textConnection(...))in order to cleanly open/close the text connection.
zoo 1.8-2 (2018-06-11)
CRAN release: 2018-06-11
Properly register
autoplot()andfortify()methods for"zoo"objects provided thatggplot2is loaded.If
rollapply(),rollmean(), etc. are applied to zero-length objects, these objects are returned unmodified.The
rollmean(x, k, ...)method now callsrollapply(x, k, (mean), ...)in casexcontains anyNAs (as the fastcumsum()-based solution inrollmean()is not applicable in this case). Analogously forrollsum()androllmedian()(reported by Jan Gorecki).Added new
na.fill0()function for simpler filling ofNAs in sufficiently plain vectors,"Date"objects, etc.Applying
na.fill()to all-NAvectors/columns now consistently treats allNAs as leadingNAs. Also filling character vectors/columns has been improved.In
write.zoo()the time index column is now coerced toas.character()prior to callingwrite.table()so thatquote = TRUEis applied when writing time indexes with spaces (e.g.,"Jan 2000"for"yearmon").
zoo 1.8-1 (2018-01-08)
CRAN release: 2018-01-08
New
.DollarNamesmethod (contributed by Josh Ulrich) to enable tab completion when usingzoo_object$...New default method for
zoo::as.Date()that simply dispatches tobase::as.Date().rollapply(x, k, FUN, align = "right")leads to an error iflength(x) < k. This has been corrected to match the behavior of the other align types.rollmean(),rollsum(),rollmedian(), androllmax()no longer throw an error if the series is shorter than the window size. Insteadrollapply()is called which either returns an empty series (iffillis not specified) or a padded series (iffillis specified, e.g., toNA).read.zoo()now also handles"tbl"objects by coercing them to"data.frame"first. Also gained aread = read.tableargument to simplify convenience interfacesread.csv.zoo()etc.The
fortify()method gained anamesargument so that the column names of the (melted) series can be modified.
zoo 1.8-0 (2017-04-13)
CRAN release: 2017-04-12
zoo()andzooreg()gained acalendar = getOption("zoo.calendar", TRUE)argument so that, by default,"yearqtr"and"yearmon"are used as the time index for regular"zoo"series with frequency 4 and 12, respectively. Withcalendar = FALSEthe behavior from previous versions with plain unclassed time indexes can be obtained. Setoptions(zoo.calendar = FALSE)to always retain the old behavior.na.locf()is made faster by using adiff()-based solution rather thancumsum()(suggested by Ruben Arslan). Also, the workhorse functionna.locf0()underlying the defaultna.locf()method is now exported in the user interface as it is faster (but also supports less options).Better support of vector-valued
splitarguments inread.zoo().Special-cased
rollmax(..., k = 1)to return the inputcoredata().as.character()for"yearqtr"objects did not processNAelements correctly.
zoo 1.7-14 (2016-12-19)
CRAN release: 2016-12-16
Several convenience interfaces to
read.zoo()have been added:read.table.zoo(),read.csv.zoo(),read.csv2.zoo(),read.delim.zoo(),read.delim2.zoo(). All of these first call the correspondingread.*()function to read the data from a text file (with the respective default settings) and subsequently callread.zoo()to turn the data into a"zoo"series.na.approx.defaultdid not properly process themaxgapargument ifydid not contain anyNAs butNAs were only created implicitly byxoutbeing different fromx(pointed out by Stefan Metzger). A suitable fix has been added that mergesxandxoutfirst.aggregate()androllapply()methods gained the argumentcoredata = TRUEwhich can control whether only the coredata is passed to each subset (previous behavior) or the full"zoo"series.The
itspackage has been archived on CRAN and hence removed from the list ofzoo’s suggested packages. However, various methods for objects of class"its"continue to be available inzooin case someone still uses the legacy code.
zoo 1.7-13 (2016-05-03)
CRAN release: 2016-05-03
The
window()method erroneously dropped the dimension in case of 1-column zoo series. Fixed now.Bug fix in
NAhandling ofrollmax()pointed out by Cory Fletcher.A few
as.yearmon/as.yearqtrmethods were not registered in the NAMESPACE but are now.If there are less then two non-
NAs inna.approx()thenapprox()cannot be applied. Instead of throwing an error (as up to version 1.7-12) simply noNAs are replaced now.Bug fix for
lag(z, k = k, na.pad = TRUE)which ignoredna.pad = TRUEifkwas a vector of lags.
zoo 1.7-12 (2015-03-16)
CRAN release: 2015-03-16
read.zoo()with a data frame argument now defaults toFUN = identityif theindex.columnis not character or factor. See?read.zoofor additional details.read.zoo()heuristic improved so that"POSIXct"rather than"Date"is detected in cases like:read.zoo(text = "2010-01-01 12:05:03 88.1", index = 1:2).Added a
dim<-method that checks whether the new dimension value appears to be ok and then calls the default.The
index<-andtime<-methods now enforce that the new time index is actually correctly ordered (suggested by Joshua Ulrich).The
fortify()method now has acol.namesargument that allows to set (some of) the column names of the resulting data frame.Various small bug fixes and enhancements.
zoo 1.7-11 (2014-02-27)
CRAN release: 2014-02-27
Extended the license from “GPL-2” to “GPL-2 | GPL-3”.
Avoid duplications in
Suggests/Imports/Dependsin the package’sDESCRIPTION. Use only::instead of:::to access certain functions from other namespaces.Added
as.list()methods for"yearmon"/"yearqtr".Added workaround in
Ops.zooif first argument is not a"zoo"series (prompted by Josh Ulrich).The
transform()method for"zoo"series now does what the method for"data.frame"does (instead of just calling it) in order to get non-standard evaluation.
zoo 1.7-10 (2013-06-14)
CRAN release: 2013-06-14
All methods that had previously been fully exported (
merge.zoo,MATCH.default, …, and many more) in order to be accessible to all conceivable generics are now additionally registered asS3method()s for the standard generics. Exception:as.Date.*are still only fully exported.Added a new
mean()method for"zoo"objects that simply doesmean(coredata(obj), ...).Added
yearmon_trans(),scale_x_yearmon()andscale_y_yearmon()andyearqtr_trans(),scale_x_yearqtr()andscale_y_yearqtr()toggplot2interface.Removed the use of the shape and linetype aesthetic by default in
autoplot()method.Bug fix in
na.fill()for univariate series based on 1-column matrices (provided by Josh Ulrich).Added
[[methods for"yearmon"and"yearqtr".Constructs like
time(obj)[ORDER(time(obj))]are now split up into two steps in the package code. Ifzoois only imported but not loaded, R can otherwise have problems correctly dispatching to the new genericsORDER() andMATCH()`.as.Date()now also works for"yearqtr"/"yearmon"that are allNA(especially needed forformat()andprint()method).
zoo 1.7-9 (2012-11-04)
CRAN release: 2012-11-04
- Added
ggplot2interface throughautoplot()andfortify()methods. Also support functionfacet_free().
zoo 1.7-8 (2012-10-06)
CRAN release: 2012-10-06
Added
rollsum().Bugfix in
src/lag.cfor the case ofk > NROW.
zoo 1.7-7 (2012-02-11)
CRAN release: 2012-02-11
Fixed bug where column names were dropped when merging with zero width
"zoo"object.Fixed slow-down in
rollapply()compared to versions up to 1.6-x.C code now correctly declares GPL-2 (or later) license in the
src/*.cfiles.
zoo 1.7-6 (2011-11-02)
CRAN release: 2011-11-02
- Removed dependency on
fCalendarwhich was only for historical purposes.vignette("zoo", package = "zoo")outlines howtimeDateinstead offCalendarcan be used together withzoo.
zoo 1.7-5 (2011-10-25)
CRAN release: 2011-10-25
Fixed a bug in the
aggregate()method which occured when using it with"zoo"objects that have a"timeDate"index.In
read.zoo()index.columncan refer to column names or numbers (previously only numbers)Fully export all
as.Date.*methods so that they can be used more easily (i.e., without extra registration) withas.Date()generics from other packages (basein particular).
zoo 1.7-4 (2011-08-22)
CRAN release: 2011-08-22
Fixed bug in
rollapply()and slowness inrollmax().read.zoo()gainstext=argument similar to that in newread.table().
zoo 1.7-3 (2011-08-11)
CRAN release: 2011-08-11
Added
drop = TRUEargument tomerge()method. When set todrop = FALSEthis allows to merge a zero-column series with a"zoo"vector to a one-column matrix. The latter is the default in thecbind()method.Enhanced the
$<-method so thatz$a <- valueworks even ifzis a"zoo"series without data.Bug fix in C version of
lag()method for"xts".
zoo 1.7-2 (2011-07-23)
CRAN release: 2011-07-23
Modified
as.Date.numericis now in thezoonamespace rather than in the base namespace, ownas.Date()generic to assure dispatch. For packages depending onzoo, this means that they may need to import it fromzoo(or callzoo:::as.Date.numericdirectly).Small bug fixes.
zoo 1.7-1 (2011-07-18)
CRAN release: 2011-07-18
Internal change to
roll*routines to increase compatibility with classes built on top of"zoo"(especially"xts"). This has no effect on"zoo".as.Date.numeric(x, origin = "0000-00-00")is now also accepted being equivalent toorigin = as.Date("0000-01-01") - 1. (for MATLAB dates)
zoo 1.7-0 (2011-07-12)
CRAN release: 2011-07-12
A
[<-method was added and the behavior is now consistent with the[method.The
check.namesargument of themerge()method now defaults toFALSE.Added a new
as.zoo()method for"matrix"objects in order to preserve column names. Also, a new"data.frame"method leverages the"matrix"method.In
rollapply()widthmay be a list whose components are offsets. Theascendingargument is no longer supported. Usewidth’s list form instead.In
rollapply()newpartialandfillarguments. Thena.padargument is deprecated.rollapply()withFUN = meanwill no longer callrollmeanif the data has anyNAvalues.Added a
yax.flipargument to theplot()method for"zoo"objects to be consistent with the"ts"method.New vignette “zoo-read” introducing
read.zoo()including several new features (see also below).In
read.zoo()ifFUNis not specified butFUN2is specified thenFUN2is applied in place ofFUN. PreviouslyFUN2was ignored in this case. Alsoformatandtzarguments can beNULLin which case they are treated as missing.read.zoo()can accept a vector of filenames in which case each is read in and a single"zoo"object is returned formed by merging the individual ones.If
FUNis omitted inread.zoo()andindex.columnspecifies multiple columns then the columns are pasted together separated by spaces and processing continues as if there were one column.In
read.zoo()index.column = 0is now valid in which case 1, 2, 3, … is used for the index.read.zoo()can now read in a"zoo"object with an index but no data.In most situations in which a plain numeric vector for
index.columninread.zoo()would give an error it now also tries usingas.list(index.column). As a result its almost always possible to use a plain numericindex.columnrather than a list.A new
src/directory containing C code backported from thextspackage is now included. This is the start of the process to align some of the faster C internals ofxtswithzoo.xtsis now using theLinkingTooption to call certain code in thezoopackage (previously inxts/src). Subsequentzooreleases will begin to use the new C, which in the current release are not yet available.New
roll*r()wrappers which default toalign = "right".New
na.fill()function.New
na.StructTS()function for seasonalNAinterpolation using R’sStructTS().rev()method for"zooreg"objects added.transform()method added.Added
frequencyargument toas.zooreg()generic and associated methods.
zoo 1.6-5 (2011-04-08)
CRAN release: 2011-04-08
- Fixed a technical error in the
Sweavecommands of “zoo-faq.Rnw” which throws an error in the current R-devel (2.14.0 to be).
zoo 1.6-4 (2010-07-09)
CRAN release: 2010-07-09
Names were automatically added to indexes in some cases hugely increasing the size of the index. This is no longer done.
diff()can have a negativelagargument (for forward diffs). Previously only positive was allowed.na.locf()now callsna.approxwithmethod = "constant"unlessfromLast = TRUE. In particular, argumentsxandxoutcan be passed tona.locf()which is used in alignment applications.merge()hascheck.namesargument. Ifcheck.names = TRUE(the default) then column names will be valid syntactic names.read.zoo()’sindex.columnargument can be a list such thatFUNis called viado.call(FUN, L)whereiin listLis replaced withx[,i].Added workaround in
Ops.zooto circumvent rare bug in base R.Added a
median()method.Added a
quantile()method.
zoo 1.6-3 (2010-04-23)
CRAN release: 2010-04-23
New generic function
xblocks()for plotting contiguous blocks along the x-axis (intended for base graphics). A default method along with"zoo"and"ts"methods is provided.New function
na.aggregate().New
maxgapargument forna.*()methods. Further refinements for manyna.*()methods, especiallyna.approx()andna.spline().xyplot()method rewritten; is now a wrapper around thexyplot()method for"ts"objects in thelatticepackage (lattice:::xyplot.ts). Accompanying infrastructure (llines(),lpoints(),ltext(), etc.), help page, and examples have been substantially revised and expanded.New question #13 added to “zoo-faq” vignette.
FUNargument of aggregate() method now defaults to sum for consistency withaggregate()method for"ts". Previously it had no default.new MATCH() method for “times” class.
zoo 1.6-0 (2009-11-18)
CRAN release: 2009-11-18
tisgraphics support.Workaround to eliminate
as.Date.numericwarning whenzooloads.read.zoo()now optionally accepts a data frame for thefileargument.Better error message in
read.zoo()ifNAs found in index.read.zoo()now accepts asplitargument that allows reading in of datasets in long format (where long is as defined in R’sreshape()command).Methods for
cbind(),merge(),rbind(), andc()now ignoreNULLarguments.Fixed unique() methods for
"yearmon"and"yearqtr"objects.Fixed a bug in group generic functions and
-() generic for“yearmon”and“yearqtr”` objects.plot()method now accepts vectorlwd.New
rev()method for"zoo"objects.
zoo 1.5-8 (2009-07-22)
CRAN release: 2009-07-22
- Bug fixes in
unique()methods for"yearmon"/"yearqtr".
zoo 1.5-7 (2009-07-22)
CRAN release: 2009-07-22
as.zoo()methods for"xts","tis","fts", and"mcmc"objects (the other direction being handled by the respective packages).-
Improvements in
"yearmon"and"yearqtr":- Added
range(),unique(), andis.numeric()methods. -
is.numeric()methods returnFALSE. -
as.yearmon()now also accepts"%b %Y"as a default format soas.yearmon(as.character(ym))whereymis"yearmon"now works.
- Added
Fixed
stripargument inxyplot()method (thanks to Christian Gunning).lag()method for"zooreg"objects now has anna.padargument, like the corresponding"zoo"method. Additinal bug fix.head()andtail()methods now allow second argument to be negativeAdded
is.naargument tona.trim().ORDER()methods for"chron","dates", and"times"objects added. Without these order has become very slow when using older versions of thechronpackage (although the most recent version ofchronhas no slowdown even without this fix as it implementsxtfrm()).
zoo 1.5-6 (2009-05-22)
CRAN release: 2009-05-21
- Changed dependency in coercion functions and vignettes from
fCalendar/fSeriestotimeDate/timeSeries.
zoo 1.5-4 (2008-07-09)
CRAN release: 2008-07-09
Improvments in
read.zoo().Updates in
zooFAQ.Small bug fix in
plot()method (ylimhandling).Small bug fixes in
axis.yearmonandaxis.yearqtr.Small bug fixes in
aggregate.zoo.Extended examples for
plot.zoo,xyplot.zoo,aggregate.zoo.Interactive plots/demos using the packages
TeachingDemos(plot.zoo) andplaywith(xyplot.zoo).mean.yearmonandSys.yearmonare defined. Similarly foryearqtr.min(),max()andrange()methods for"yearmon"are defined viaSummary().
zoo 1.5-3 (2008-04-22)
CRAN release: 2008-04-22
Export
as.Date.numericso that it does not get shadowed by the newas.Date.numericinstats(from 2.7.0 on). Both functions are almost identical, the version inzoojust sets the defaultorigin = "1970-01-01".Added some glue for communication between
"zoo"and “timeSeries”: newMATCH()andORDER()methods for"timeDate", newas.zoo()method for"timeSeries"objects (the inverse will be added tofSeries).Improved the “zoo” vignette, updating/correcting the information about
timeDateandtimeSeries.
zoo 1.5-2 (2008-04-05)
CRAN release: 2008-04-05
read.zoo()has new aggregate function argument to aggregate duplicate times.New
with()method added.FAQ updated.
zoo 1.5-0 (2008-03-14)
CRAN release: 2008-03-14
New
$and$<-methods.read.zoo()now passesformatandtztoFUNif they are specified. IfFUNis not specified buttzandformatspecified then"POSIXct"translation is done with respect to the specified format string.months.yearmon,quarters.yearmon,cycle.yearmonmethods added.months.yearqtr,quarters.yearqtr,cycle.yearqtrmethods added.as.yearqtr.characternow accepts%qand default formats are"%Y Q%q","%Y q%q"and"%Y-%q".yearqtr.factorandyearmon.factoradded.as.yearmon.yearqtrnow hasfracargument consistent withas.Date.yearmon.format.yearqtrandas.character.yearqtrperformance speedup for the common case of default format.
zoo 1.4-2 (2008-01-28)
CRAN release: 2008-01-28
The processing of regular series in
aggregate.zoowas changed. By default, a regular series is only created if the original series was regular. Otherwise, a regular series is only created if indicated (by setting argumentregular = TRUEor by supplying a specific frequency).zooFAQ vignette added.axis.yearqtrandaxis.yearmonimproved. They no longer useaxis.Date.as.yearmon.characteraccepts"%Y-%m"default format (as well as prior default of"%Y-%m-%d").New
summary()methods foryearmon/yearqtrobjects which simply report the summary of the underlying numeric vector.na.locf.defaultnow usesfromLast=(consistent with the R duplicated function). It is similar to therev=argument (which will be deprecated).Comparisons between
yearmonvariables and character variables that can be coerced toyearmonviaas.yearmonnow work. This also lets character variables be used instart=andend=arguments ofwindow()method forzooseries with a yearmon index (sincewindow.zooalready allows such usage for any index class that can be compared to character). Similarly foryearqtr.
zoo 1.4-0 (2007-10-12)
CRAN release: 2007-10-12
Added a
write.zoo()function that writes zoo series to a text file viawrite.table(). The index is included in the first column so that it can be easily read again usingread.zoo().read.zoo()has a new argumentindex.column(default:1) which can be used to specify in which column of a data file the index/time is stored.rapply()was removed fromzoo- after being deprecated since zoo 1.2-0 (and R 2.4.0) and replaced byrollapply().Improved
str()method for"zoo"and"zooreg"series, now gives explicit information about class, start and end, as well as data, index (and frequency).zoo()now has a default first argument likets()has. By default,zoo()is nowzoo(NULL)and returns an empty series. This differs somewhat from the defaultts()andzooreg()that returnts(NA)andzooreg(NA), respectively.Added
...arguments to theas.POSIXct()andas.POSIXlt()methods.Implementation of
as.Date.numeric()has been modified: being backward compatible with the oldzoo:::as.Date.numeric. It now matches the new (2.7.0 to be)base:::as.Date.numeric, but also sets a default"origin"argument (1970-01-01).plot.typeargument ofplot()method now chooses its default value via the screen argument.
zoo 1.3-2 (2007-06-26)
CRAN release: 2007-06-27
-
merge.zoo()has been improved so that unnecessary checking of frequencies is avoided for"zoo"objects.
zoo 1.3-1 (2007-05-14)
CRAN release: 2007-05-14
as.yearmon()can take format arguments that do not involve day, e.g.,as.yearmon("2007-01", "%Y-%m").Added
as.data.frame()methods for"yearmon"and"yearqtr"objects.
zoo 1.3-0 (2007-04-20)
CRAN release: 2007-04-20
Checking for non-unique index entries has been improved:
zoo()throws a warning if a series with non-unique index entries is created.merge()gives a more useful error message.Inconsistencies when checking for regularity of series have been resolved:
is.regular(),frequency(),frequency<-()etc. all behave consistently now.Custom panel functions in
plot()method can now refer toparent.frame()$panel.numberto determine the current panel. Also added an example of this to?plot.zoo.read.zoo()will behave consistently when the file contains no data.Column names (if any) are checked now in
rbind.zoo(), producing a similar behaviour as inrbind.data.frame().
zoo 1.2-2 (2006-12-18)
CRAN release: 2006-12-18
The order of arguments (
...now come afterFUN) in rollapply has been changed to allow unnamed additional arguments to be specified forFUN. Previously they had to be named.Bug in
as.ts.zooregfixed.
zoo 1.2-1 (2006-09-19)
CRAN release: 2006-09-19
- One of the examples on
?xyplot.zoodoes not run with the R 2.4.0lattice. It is currently placed in\dontrun{}(see comments in?xyplot.zoo).
zoo 1.2-0 (2006-08-18)
CRAN release: 2006-08-18
rapply()was re-named torollapply()because from R 2.4.0 on, base R provides a functionrapply()for recursive (not rolling) application of functions, which was already described in the Green Book.zoo::rapply()still exists for backward compatibility, however, it is flagged as deprecated and now dispatches torollapply()methods.Added methods for
xyplot()from packagelatticefor classes"zoo","ts","its". These functions are still under development and the interface and functionality might be modified/extended in future releases.New function
make.par.list()(which was previously a local functionparm()inzoo’splot()method) for processing named argument lists. Useful in plotting routines like theplot()andxyplot()methods, see?make.par.list.-
Subscripting by a
"zoo"object whose data is logical is now defined, e.g.,z <- zoo(1:10); z[z > 3]However, assignment such as
z[z > 3] <- 2 * z[z > 3]does not work.
Fixed a bug in
zoo()when ordered factors are supplied ("ordered"class was dropped)Fixed bug in subscripting for
drop = TRUEand length of result is 1Fixed bug in
na.trim(x, "right").all=argument ofmerge()method is coerced to logical so one can do this:merge(zoo(2:4, 2:4), zoo(1:3), all = 0:1).
zoo 1.1-1 (2006-07-03)
CRAN release: 2006-07-03
Added
na.spline()generic and default method for replacingNAs via cubic spline interpolationrbind()method now exported explicitly again.
zoo 1.1-0 (2006-06-06)
CRAN release: 2006-06-07
Added a NAMESPACE, many S3 methods are not exported explicitly anymore.
New argument
regularinread.zoo()which is set toFALSE. Only if set toTRUEthe series read is coerced to"zooreg"(if possible), which was the previous default behavior.suppressWarnings()was added inis.regular()andfrequency()functions whichtry()to convert indexes to numerics which might lead to errors or warnings andNAs (e.g., for characters), both should be fully suppressed now.
zoo 1.0-7 (2006-05-22)
CRAN release: 2006-05-23
Added a
...argument toas.data.frame()method for complying with R 2.4.0.Improved handling of
byargument inaggregate()method.
zoo 1.0-6 (2006-04-07)
CRAN release: 2006-04-08
?zoonow explicitly points out that the index of"zoo"objects should have unique observations (aka time stamps).The
summary()was fixed to work also with duplicated indexes.scale()method added.lines(x, y, ...)now supported.points()method added.-.yearmonand-.yearqtradded.axis.yearmonandaxis.yearqtradded.Axis.yearmonandAxis.yearqtradded.na.trimgeneric and default method added.
zoo 1.0-4 (2006-01-19)
CRAN release: 2006-01-18
- Added a
revargument tona.locf()which allows to eliminateNAs by NOCB (next observation carried backward).
zoo 1.0-3 (2005-12-01)
CRAN release: 2005-12-01
Added a
barplot.zoo()method.Fixed
frequency.zoo()which returnedNAinstead ofNULLfor indexes of class"character".Added an example to “zoo-quickref” for querying daily exchange rates from oanda.com via
get.hist.quote(). This contains a worked example how to omit weekends from daily series.Added an
na.padargument todiff.zoo()method.
zoo 1.0-2 (2005-09-08)
CRAN release: 2005-09-08
Small enhancements of
plot.zoo().Bug fixes in
na.locf.default(),as.data.frame.zoo(),lag.zoo(),lag.zooref().
zoo 1.0-1 (2005-06-22)
CRAN release: 2005-06-22
Convenience function
read.zoo()for reading"zoo"series directly from plain text files.New vignette “zoo-quickref” with a quick reference particularly aimed at (daily) financial series (contributed by Ajay Shah).
plot()method now hasscreens=,widths=andheights=arguments for controlling which series are plotted in which graphs and widths and heights of graphs. Theylim=argument has been enhanced.Argument
k=can be vector inlag()method (suggested by Roger Koenker).na.locf.defaultbug fixed.
zoo 1.0-0 (2005-05-25)
CRAN release: 2005-05-25
This release accompanies the publication in the Journal of Statistical Software (“zoo: S3 Infrastructure for Regular and Irregular Time Series”, JSS, 14(6), 1-27) that essentially corresponds to the vignette contained in the package. Please use this paper to cite
zooin publications.aggregate.zoo allows a function as the argument for computing the aggregation groups. The return value is coerced to
"zooreg"if it is.regular.extended NA handling for lists and data.frames: na.locf.data.frame, na.locf.list, na.contiguous.data.frame, na.contiguous.list
pair notation, e.g. c(1985,2), for
"zooreg"series is now also allowed in window.zoo and window<-.zoo.fixed bug in rapply: result was transposed when by.column = FALSE and a non-scalar function FUN was used.
zoo 0.9-9 (2005-04-27)
CRAN release: 2005-04-27
Regular
"zoo"series: objects of class"zooreg"(inheriting from"zoo") can be used to store strictly regular series (similar to"ts"objects) or series with an underlying regularity (as before but with observations omitted). They have a frequency attribute that can be used for conversion between"zoo"and"ts". The functionis.regular()can be used for checking the regularity of a series.Improved
merge()method:merge.zoonow accepts non-zoo arguments (other than first) if all non-zoo args have the sameNROWvalue as the first argument (or are scalar). In that case the non-zoo args are given the index of the first series. Scalars are added for the full index of the merged series.merge()method can now optionally return a"data.frame"that contains the numeric columns as"zoo"series and the"zoo"objects created from factors converted back to"factor".[method now allows indexing using observations from the index scale (and not only observation numbers).rapply,rollmean,rollmax,rollmedianto perform rolling analyses.Extended functionality to
plot()methodtypeargumentWhen
plot()method is used with one serieslist(...)can be omitted from various plotting parameter argumentsprint()method documentation fix for R 2.1.0yearmonandyearqtrdatetime classes.head.ts,tail.ts.c.zoo,range.zoo.coredata.default,coredata.ts.
zoo 0.9-1 (2004-12-21)
CRAN release: 2004-12-20
New generic functions
ORDER()andMATCH()(withorder()andmatch()as the default) so thatzoo()can handle arbitrary index/time classes when suitable methods for the generic functionc(),length(),order(),match()and subsetting[, are supplied.Improved printing of
"zoo"objects and added asummary()method.Extended coercion functionality to and from
"zoo"objects."its"objects can be coerced to"zoo"and vice versa."zoo"objects can be coerced to vector, matrix, data.frame or list.Added functionality to extract/assign to the
coredata()of a"zoo"object.Added/improved functionality to extract/assign to the
window()of a"zoo"object.Added/improved functionality to extract/assign to the
index()ortime()of a"zoo"object.Added
lag(),diff(),start(),end(),head(),tail()methods.Improved
plot.zoo()by more flexible expansion of plotting parameters such ascol,lty, andpch.Added a
cbind()method for"zoo"objects (almost synonymous withmerge())NAhandling for"zoo"objects viana.omit(),na.contiguous(),na.approx()andna.locf().na.locf()generic function with default method (suitable for"zoo"objects) which implements Last Observation Carried Forward.na.approx()generic function with default method (suitable for"zoo"objects) which implements elimination ofNAs by interpolation.Added mathematical methods: group generic functions for
"zoo"objects,t(),cumsum(),cumprod(),cummin(), andcummax().Added
model.frame.AsIsandmodel.frame()method to support regression based on"zoo"objects, in particular withlm()(but also many other regression functions).Zero length vector zoo objects may have non-zero index vectors intended to be used in merge to extend
"zoo"objects.zoo()changed to enable the creation of such objects by omitting first argument.Added a vignette explaining the new features
zoo 0.2-0 (2004-08-12)
CRAN release: 2004-08-12
zoo()now has defaults for both argumentsxandorder.by, which mimic the default behaviour ofts().Added new
aggregate()method for computing summary statistics of"zoo"objects along a coarser index grid.-
Improved
merge()method in three directions:- Handling of
"zoo"objects with zero columns, - Naming of columns in the merged
"zoo"object which behaves more likemerge.data.frame(); a corresponding suffixes argument has also been added, - Introced a fill argument which allows to fill gaps by another value than
NA.
- Handling of
Improved documentation with extended examples.
zoo 0.1-1 (2004-02-20)
CRAN release: 2004-02-18
First CRAN release of
zoopackage for “Z’s Ordered Observations”, an S3 class which can be used for representing numeric data (vector/matrix) with an ordered index. This could include (irregular) time series data but also data ordered by other variables (other than date/time).Functionality includes printing, plotting, subsetting, and coercion from classes
"ts"and"irts".The package serves as infrastructure for
strucchange, especially when visualizing parameter instability tests across some variable other than time.