forked from joshuaulrich/xts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
758 lines (516 loc) · 30 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
################################################################################
Changed in xts 0.12.X:
### New Features
o Added a xts method for `na.fill()` to significantly increase performance when
'fill' is a scalar. (#259)
o `as.xts()` will look for a time-based column in a data.frame if it cannot
create an index from the row names. (#381)
o Change `print()` xts method to only show the first and last 'max' rows if
number of rows is > 'trunc.rows'. It will also truncate the number of columns
if they would wrap to a new line. (#321)
o Made `str()` output more descriptive for xts objects. It now differentiates
between xts objects that are empty, zero-width, or zero-length, and defines
each type of object. It also adds column names to the output. (#168, #378)
o Add startup warning that `dplyr::lag()` breaks method dispatch, which means
calls to `lag(my_xts)` won't work any more.
o Added open-ended time of day subsetting ranges. This allows users to subset
by time of day from the start/end of the day without providing the start/end
times (00:00:00.000/23:59:59.999).
For example:
x["/T1800"] # between the start of the day and 5pm
x["T0500/"] # between 5am and the end of the day
Thanks to Chris Katsulis for the suggestion! (#243)
o Updated `to.period()` to accept custom 'endpoints' via the 'period' argument.
Now you can aggregate on something other than the times that 'endpoints()'
supports. Thanks to Ethan B. Smith for the suggestion! (#302)
o Added xts methods for `rowMeans()` and `rowSums()`. Calling `rowSums(my_xts)`
now returns an xts object instead of a matrix. Thanks to @harvey131 for the
suggestion! (#281)
### Fixes
o Fixed typo and expand `period.apply()` documentation. (#205)
The original description has:
* "the data from INDEX[k] to INDEX[k+1]"
But that's not consistent with the code. It should be:
* "the data from INDEX[k]+1 to INDEX[k+1]"
o Calls to `merge.xts()` on zero-width objects now match `merge.zoo()`.
Previously, `merge.xts() would return empty xts objects if called on two or
more zero-width xts objects. `merge.zoo()` would return a zero-width object
with the correct index. (#227, #379)
o Fixed `periodicity()` results when frequency is hours or more. It had used a
frequency of seconds and not the 'units' the result specified. Also added
special handling for `yearmon` and `yearqtr` index classes, because they
have a known frequency per month/quarter. Thanks to Alexander Sergeev for
the report. (#54)
o Fixed `Ops.xts()` so it always returned an object with the same class as the
first (left-hand side) argument. It previously returned an xts object even
if the first argument was a subclass of xts. (#49)
### Other
o Migrated unit tests from RUnit to tinytest. Thanks Mark van der Loo!
o Updated the `endpoints()` documentation to make it clearer that the result
is based on the UNIX epoch (midnight 1970, UTC). Thanks to GitHub user
Eluvias for the suggestion! (#299)
o Fixed `reclass()` to ensure it always adds index attributes from the
'match.to' argument. It was not copying `tclass`, `tzone`, or `tformat` from
'match.to' to the result object. (#43)
o Removed an unnecessary check in `na.locf()` (which is not user-facing).
Thanks to GitHub user @cgiachalis for the suggestion! (#307)
o Updated C entry points so they're not able to accidentally be found via
dynamic lookup (i.e. `.Call("foo", ...)`). This makes each call to the C
code a few microseconds faster, which is nice. (#260)
################################################################################
Changed in xts 0.12.2:
o `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)
o 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)
o `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)
o `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)
o `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)
o 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)
o `endpoints()` now always returns last observation. Thanks to GitHub user
Eluvias for the report. (#300)
o 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)
o 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)
o Clarify whether `axTicksByTime()` returns index timestamps or locations (e.g.
1, 2, 3). Thanks to @ggrothendieck for the suggestion and feedback. (#354)
o 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)
o Add a message to tell the user how to disable 'xts_check_TZ' warning. Thanks
to Jerzy Pawlowski for the nudge. (#113)
o 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)
o `split.xts()` now always return a named list, which makes it consistent with
`split.zoo()`. Thanks to Gabor Grothendieck for the report. (#357)
o 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)
o 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)
Changes to plotting functionality
--------------------------------------------------------------------------------
o You can now omit the data time range from the upper-right portion of a plot
by setting `main.timespan = FALSE`. (#247)
o 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)
o 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)
o 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)
o 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)
o 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)
o 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)
################################################################################
Changed in xts 0.12.1:
o Various function could change the tclass of xts objects. This would happen
in calls to reclass(), period.apply(), and for logical operations on
POSIXct indexes. Thanks to Tom Andrews for the report and testing, and to
Panagiotis Cheilaris for contributing test cases (#322, #323).
o plot.xts() now supports y-axis labels via 'ylab'. Thanks to Jasen Mackie
for the suggestion and PR (#333, #334).
o The API header has been updated to fix the signatures of do_merge_xts() and
is_xts, which did not return a SEXP as required of functions callable by
.Call(). Thanks to Tomas Kalibera for the report (#317), and Dirk
Eddelbuettel for the PR (#337). This is a breaking change, but is required
to avoid the potential for a segfault.
o Michael Chirico added an internal isUTC() function to recognize many UTC-
equivalent time zones (#319).
o first() now operates correctly on non-xts objects when 'n = -1'. Previously
it would always return the last two values. Thanks to GitHub user vxg20
for the report (#325).
o The .xts() constructor would create an xts object with row names if 'x' had
row names. This shouldn't happen, because xts objects do not have or
support row names (#298).
o Claymore Marshall added many examples of time-of-day subsetting to
?subset.xts. He also fixed a bug in time-of-day subsetting where subsetting
by hour only returned wrong results (#304, #326, #328).
Changed in xts 0.12-0:
o All the index-attributes have been removed from the xts object and are now
only attached to the index itself (#245). We took great care to maintain
backward compatibility, and throw warnings when deprecated functions are
called and when index-attributes are found on the xts object. But there
still may be some breaking changes lurking in edge cases.
o @SamoPP found one edge case (#297) where an error was thrown when index()
was called on an xts object with an index that had no tclass attribute.
o ...which led Joshua to find that the index setting functions did not
always copy index attributes (#305).
o Several binary operations (e.g. +, -, !=, <, etc.) on variations of
uncommon xts objects with other xts, matrix, or vector objects, could
result in malformed xts objects (#295). Some examples of the types of
uncommon xts objects: no dim attribute, zero-width, zero-length.
o Calling as.matrix() on an xts object without a dim attribute no longer
throws an error (#294).
o merge.xts() now honors check.names = FALSE (#293).
o The possible values for major.ticks, minor.ticks, and grid.ticks.on in the
Details section of ?plot.xts have been corrected. Thanks to Harvey Smith
(@harvey131) for the report and patch (#291).
o as.zoo.xts() is now only registered for zoo versions prior to 1.8-5. Methods
to convert an object to another class should reside in the package that
implements the target class. Thanks to Kurt Hornik for the report (#287).
o .parseISO8601() no longer has a potential length-1 logical error. Thanks to
Kurt Hornik for the report (#280).
o endpoints() now honors k > 0 when on = "quarters". Thanks to @alkment for
the report (#279).
o Performance for the period.XYZ() functions (sum, prod, min, max) is much
faster (#278). Thanks to Chris Katsulis for the report, and Harvey Smith
(@harvey131) for several examples.
o merge.xts() now creates shorter column names when passed unnamed objects.
This is now consistent with zoo (#248).
o Time-of-day performance is ~200x faster, thanks to StackOverflow
user3226167 (#193).
Changed in xts 0.11-2:
o The to.period() family of functions now use the index timezone when
converting intraday index values to daily values (or lower frequency).
Thanks to Garrett See and Gabor Grothendieck for the reports (#53, #277).
o Make column names for merge() results with unnamed objects shorter and more
like zoo (#248). This also makes na.fill() much faster (#259).
BREAKING: This may break existing code for integer unnamed objects.
o Fix subset when 'index(x)' and 'i' contain duplicates. Thanks to Stack
Overflow user 'scs' (https://stackoverflow.com/users/4024268/scs) for the
report, and Philippe Verspeelt for debugging (#275).
o Fix if-statement in xts constructor that may use a logical with length > 1.
Thanks to @HughParsonage for the report and PR (#270, #272).
o Register shift.time.xts() method. Thanks to Philippe Verspeelt for the
report and PR (#268, #273).
o Conditionally register S3 methods for as.timeSeries.xts() and as.fts.xts()
when their respective packages are available (as requested by CRAN). Note
that this means these two functions are no longer exported. This may break
some existing code that calls the methods directly, though 'best practice'
is to let method dispatch determine which method to invoke.
Changed in xts 0.11-1:
o Fix regression in .xts() that caused 'tclass' argument/attribute to be
incorrectly set to POSIXct regardless of user-provided value. Thanks to
@Eluvias for the report and Tom Andrews for the PR (#249, #250).
o Fix performance regression when xts object is subset by a date-time vector.
Thanks to Tom Andrews for the report, and the PR to fix the bug in my patch
(#251, #263, #264).
o Restore behavior from 0.10-2 so subsetting an empty xts object by a date-
time vector returns an empty xts object instead of throwing an error.
Thanks to @alkment for the report (#252).
o Add ability for merge.xts() to handle multiple character or complex xts
objects. Thanks to Ken Williams for the report (#44).
o Add ability to use "quarters" to specify tick/grid mark locations on plots.
This ran but produced an incorrect result in 0.10-2 and threw an error in
0.11-0. Thanks to Marc Weibel for the report (#256).
o Fix illegal read reported by valgrind. Thanks to Tom Andrews for the report
and PR (#236, #264).
Changed in xts 0.11-0:
o Fix make.index.unique() to always return a unique and sorted index. Thanks
to Chris Katsulis for the report and example (#241).
o Add window.xts() method and completely refactor the internal binary search
function it depends on. Thanks to Corwin Joy for the PR, tests, review, and
patience (#100, #240).
o Better axis tick mark locations for plots. Thanks to Dirk Eddelbuettel for
the report (#246). Also incorporate axTicksByTime2() into axTicksByTime() to
reduce code duplication from the migration of quantmod::chart_Series() to
xts::plot.xts() (#74).
o Add details to plot.xts() parameters that are periodicity, now that RStudio
has argument completion. Thanks to Evelyn Mitchell for the PR (#154).
o periodicity() now warns instead of errors if the xts object contains less
than 2 observations (#230).
o first() and last() now keep dims when they would otherwise be dropped by a
regular row subset. This is consistent with head() and tail(). Thanks to
Davis Vaughan for the report (#226).
o Fix subset when ISO8601 string is outside the valid range, so it returns no
data instead of all rows (#96).
o Avoid partial name matches from parse.side() (inside .parseISO8601())
results that are passed to firstof() and lastof(). Thanks to @gp2x for the
report and the patch (#231).
o na.locf.xts() now loops over columns of multivariate objects in C code,
instead of in R. This should improve speed and memory performance. Thanks to
Chris Katsulis and Tom Andrews for their reports and patches (#232, #233,
#234, #235, #237).
o Change plot.xts() default 'pch = 0' (rectangles) to 'pch = 1' (circles) so
it looks more like base and zoo plots (#203).
Changed in xts 0.10-2:
o na.locf.xts() and na.omit.xts() now support character xts objects. Thanks to
Ken Williams and Samo Pahor for the reports (#42).
o na.locf.xts() now honors 'x' and 'xout' arguments by dispatching to the next
method (#215). Thanks to Morten Grum for the report.
o coredata.xts() now functions the same as coredata.zoo() on zero-length
objects, and only removes xts-related attributes (#223). Thanks to Vincent
Guyader for the report.
o plot.xts() no longer ignores 'col.up' and 'col.dn' when 'type="h"' (#224).
Thanks to Charlie Friedemann for the report. This was inadvertently broken
as part of the fix for #210.
Changed in xts 0.10-1:
o 'ylim' values passed to 'addSeries' and 'addPolygon' via '...' are now
captured and honored (#220).
o 'addPolygon' now checks for ylim of zeros, as 'addSeries' does (#164).
o The 'base::as.Date.numeric' method is no longer over-ridden. The exported,
but not registered, method in zoo should prevent any change in behavior.
o Series added to an existing plot are now given the same index values as
the main panel (#216). There still may be some weird behavior if the new
data does not have observations within the timespan of the main panel data,
but no observations on the same timestamps.
o Existing 'par' values are now captured and reset before returning from
plotting functions (#217).
o User-defined 'col' values are now honored when 'type="h"' (#210).
o Values passed to plotting functions are now copied from the calling
environment. This enables plotting arguments to be objects passed
through multiple layers of function calls.
o indexFormat is now generic, consistent with indexFormat<- (#188).
o Calling as.matrix() on a zero-width xts object now behaves consistently
with zoo, and no longer throws an error (#130).
o Fix weird result in merge.xts() when 'fill' argument is NULL or a zero-
length vector (#261).
o Fixed bug in endpoints() due to sub-second representation error via using
integer division (%/%) with non- integer arguments (#202).
o endpoints() gained sub-second accuracy on Windows (#202).
o plot.xts() no longer errors when called on an object containing a constant
value. It chooses ylim values +/-20% from the series value (#156).
o plot.xts() now places y-axis labels in the same location on the plot,
regardless of data periodicity (#85).
o rbind.xts() now throws an error if passed an xts object with different
number of observations in the index and data (e.g., zero-width) (#98).
Changed in xts 0.10-0:
Major changes include:
o A new plot.xts() that is incompatible with earlier versions of plot.xts().
o Moved development from R-Forge to GitHub.
o New xts FAQ.
Other, less disruptive changes include:
o merge.xts() now throws an error if the index contains non-finite values
(#174).
o Constructors xts() and .xts() now ensure order.by and index arguments do not
contain non-finite values. Many xts functions, most notably merge.xts(),
expect all index values to be finite. Missing index values usually indicate
an error, and always occurred at the end of the index (#173, #194, #199).
o Fixed bug in endpoints() when called on sparse data that have the same month
and day, but different years (#169).
o Fixed bug in [.xts did not do the same checks on logical xts objects as it
does for all other data types (#163).
o Fixed bug that caused split.xts() to error if 'f' is a character vector with
more than 1 element (#134).
o Fixed bug that crashed R if 'k' argument to lag.xts() was not an integer and
would be NA when coerced to integer (#152).
o period.apply() now checks to ensure the object's index is unique and sorted,
and sets INDEX <- sort(unique(INDEX)) if it is not. It also ensures INDEX
starts with 0 and ends with NROW(x) (#171).
o All references to the 'its' package have been removed, since it is now
archived on CRAN at the request of its maintainer.
o Fixed bug that crashed R when merge.xts() was called on an empty xts object
and more than one non-xts object (#157).
o Fixed bug that did not set the index's tzone attribute to UTC when
index<-.xts or indexClass<- were called and 'value' did not have a tzone
attribute (#148).
o Fixed a bug in endpoints() that caused incorrect results if the index was
less than the epoch (#144).
o Fixed a bug that caused diff.xts() on a logical xts object to return an
object with a POSIXct index.
o index.xts() works even if the package containing the class for the index
is not attached (it needs to be loaded, however).
o [.xts now returns NA if a one-column xts object is subsect by NA, instead
of throwing an uninformative error (#97).
o Fixed bugs that would crash R when [.xts was called a certain way and 'j'
contained NA values (#97, #181).
o Fixed a bug in endpoints() where 1 second would be subtracted for any date
in the year 1969. The subtraction is only supposed to occur on
1969-12-31 23:59:59.9... to work around behavior in strptime().
o timeBasedSeq() now honors hour/min/sec 'BY' values (#91).
o [.xts now throws an error if 'j' is character and not one of the column
names. This is consistent with [.zoo and [.matrix (#48).
o timeBasedSeq() now works correctly when resolution is "days" the sequence
includes a daylight saving time change (#67).
o Explicitly set indexTZ="UTC" for all index classes that do not have a TZ
(#66). indexTZ="GMT" is also allowed.
o Fixed as.xts() when called on an 'mts' object (#64).
o Moved development from R-Forge to GitHub.
o Fixed bug in to.period() that errored when name=NULL (#5937).
o Fixed bug in .index* functions that did not account for timezones (#5891).
o Fixed bug that allowed index<-.xts to produce an unsorted index (#5893).
o Fixed bug so subsetting a zero-width xts object with a zero-length 'i'
vector no longer returns an object with column names (#5885).
o Updated [.xts to handle 'i' containing multiple zeros (e.g. subsetting by a
"logical" column of an integer xts object).
o endpoints() now errors if k < 0.
Changed in xts 0.9-7:
o Fixed bug that caused logical operators on xts objects to drop the 'tzone'
attribute (#2750).
o Fixed bug that ignored 'which.i' argument to [.xts on zero-width xts
objects (#2753).
o Fixed bug where xts() does not sort 'order.by' if x is missing (#4775).
Changed in xts 0.9-6:
o Fixed bug where setting dimnames to NULL would break as.xts() (#4794).
o Added checks to period.sum/prod/min/max to ensure INDEX is in [0,nrow(x)].
o Fixed missing argument to na_locf() in the C/C++ xtsAPI (Dirk Eddelbuettel).
Changed in xts 0.9-5:
o Increased zoo dependency version to 1.7-10 for changes in C code.
o Fixed several minor issues in the C/C++ xtsAPI (Dirk Eddelbuettel).
Changed in xts 0.9-4:
o Fixed bug where the index was missing the 'tzone' attribute.
o Fixed to.period() bug when 'indexAt' is "firstof" or "lastof". (bug #2691,
patch #2710, thanks to Garrett See)
o Fixed subsetting bug on zero-width xts objects that returned NA data and an
NA index (#2669).
o xts' merge() method now has 'drop' and 'check.names' arguments to match
the zoo merge() method.
o 'index<-' now correctly handles UTC Date objects when resetting index
values. '.index<-' behaved correctly.
o xts' rollapply() method now handles the 'fill' argument.
o Added several functions to the C/C++ API:
- make_index_unique
- make_unique
- endpoints
- do_merge_xts
- na_omit_xts
- na_locf
o Fixed xts' rollapply() method when input has one column, but function
output has more than one column.
Changed in xts 0.9-3:
o No user-visible changes.
Changed in xts 0.9-2:
o Added C/C++ xtsAPI (Dirk Eddelbuettel)
o Added tzone() and tclass() functions as aliases to indexTZ() and
indexClass(), respectively. Eventually will Deprecate/Defunct the former.
Changed in xts 0.9-1:
o xts() now ignores timezone arguments when order.by is Date class, with a
warning.
Changed in xts 0.8-8:
o Modified str() output to make use of proper ISO-8601 range formating
o Fixed bug in reclass() when 'tzone' of object is different than system TZ.
o Fixed bug in xts() that dropped dims when 'x' is a 1-column matrix or
data.frame.
o [.xts no longer warns if 'i' is zero-length.
o to.period() now checks that 'x' is not zero-length/width.
o Fixed edge case in Ops.xts where two objects with no common index create
an invalid 'xts' object with no index.
o to.monthly() and to.quarterly() now default to drop.time=TRUE.
o Internal .drop.time() now changes the index class to Date. This affects
the to.period() family of functions.
o Restore Date index/tclass conversion to POSIXct with a UTC timezone via
integer division instead of double-precision division.
Changed in xts 0.8-6:
o Revert Date index/tclass conversion to POSIXct with a UTC timezone to
previous behavior as in 0.8-2.
Changed in xts 0.8-5:
o A Date index/tclass is now internally converted to POSIXct with a UTC
timezone ensure proper conversion regardless of user TZ settings.
o tclass is now an argument to .xts()
o Fix endpoints() properly handles millisecond time stamps (and microsecond
on not Windows).
o Subsetting zero-width xts objects now behaves like zoo, with NA values
returned for valid row requests.
Changed in xts 0.8-2:
o Fixed bug in lag() and diff() for character coredata.
o Fixed subsetting bug that returned a contiguous chunk of data even when
a non-contiguous 'i' was provided.
o Fixed bug that ignored FinCenter/TZ for timeDate index
o period.apply() now only sets colnames if the number of columns in the input
and output are equal.
o Fixed periodicity() when scale = "yearly"
o Fixed [.xts when row-subsetting via a POSIXct vector, which returned an
object full of NA.
o Added '...' to axis() call inside of plot.xts() to allow for 'cex.axis'
and 'cex.lab' to be passed in.
o Fixed axes=FALSE issue in plot.xts().
o Dependency now on 1.7-0 or better of zoo (R-forge at present)
This build now links to C code moved from xts to zoo. At present
this is only for zoo_lag (used in lag and lagts)
o Added 'drop' and 'fromLast' arguments to make.index.unique().
o Added adj.time() and shift.time()
o Fixed na.locf() bug that would fill trailing NA larger than 'maxgap'
observations (#1319)
o Updated indexFormat() documentation and add an example
Changed in xts 0.8-0:
o Fix print formatting (#1080)
o Fix bug related to na.locf() and zero-width objects (#1079)
o Add .RECLASS = FALSE after '...' for as.xts.*() methods. This makes all
as.xts.*() methods one-way (i.e. not reclass-able). Objects converted to
xts via try.xts() can still be converted back to their original class
via relcass().
o Fix bug that caused colnames to be dropped if object is subset by time
that is not in the index.
Changes in xts 0.7-5:
o try.xts and reclass now are more efficient on xts objects,
no longer appending a .RECLASS attribute. This penalty
(copying) is shifted to classes that are internally converted
to xts.
Changes in xts 0.7-4:
o internal attributes of index are now maintaining
timezone (tzone), time class (tclass) information.
o `[.xts` method is now using new C code. This may revert
back as character-based objects are not supported. Changed
for future code refactoring into zoo, as well as performance
gains on integer, double and logical values. Also added in
checks for NAs. drop=TRUE now works correctly in all known
applications.
o (cbind)merge.xts and rbind.xts now copy index attributes
to handle internal changes to index characteristics (in C code)
o indexTZ.Rd updated to provide information regarding internal
changes. Also indexTZ<- is now exported to facilitate
timezone changing of xts objects.
Changes in xts 0.7-1:
o subsecond ISO8601 subsetting on dates
before 1970 (epoch) is disabled. This is due to a bug
in the R implementation of POSIX handling of fractional
seconds pre-1970. 10 microsecond granularity is still
functional for all other times. Thanks to Andreas Noack Jensen
for the early bug report.
o new 'tzone' arg in xts constructor and 'tz' in .parseISO8601
allows for future support of non-system TZ dependent indexing
o internal index attribute (numeric) now can have attributes
set (tzone is currently the only one used in xts). These should
remain during all xts operations. Still experimental.
o naCheck has been exposed at the C level for use in packages
"LinkingTo: xts". See ?xtsAPI for more details.
Changes in xts 0.7-0:
o A new NEWS file.
o print.xts now passes ...
o endpoints speedup and bug fix (thanks Ismail Onur Filiz)
o na.omit bug on logical and NaN fixes (thanks Fabrizio Pollastri
and Koert Kuipers)
o fromLast=FALSE for na.locf.xts. Matching to zoo. (thanks
to Sandor Benczik)
o LGLSXP support in leadingNA (R fun naCheck)
o fixed logical and NA 'j' subsetting. Thanks Koert Kuipers.
o as.xts and as.timeSeries fixes for timeSeries changes
o merge and subset now support dimensionless xts (non-standard).
merge segfault fixed when merging all 3 or more zero-width xts objects
and only zero-width objects. Thanks to Koert Kuipers for the report.
o added which.i to [.xts to return i values found via
ISO8601 subset string
o new lines.xts and plot.xts, similar to methods in zoo
o lastof now has sec to 10 microsecond precision, and subsec
arg to append to secs.
o xts() further consistency in NROW/index check
o align.time error checks for positive n= values (thanks Brian Peterson)
o toPeriod updates in C, almost exported. ~600-1200x faster
o new lag_xts in C. Increased speed and index flexibility.
o endpoints 'days' bug fix
o .makeISO8601 function to create ISO8601 compliant string
from xts objects