Coercing a grouped tbl_time object to tibble with
as_tibble() now drops groups and returns a bare tibble. The previous behavior of returning a grouped tibble was incorrect and let to faulty behavior in other functions.
new_tbl_time(). Only to be used by package developers extending
tibble 2.0.1, an internal bug fix was made to pass along an
dplyr 0.8.0, an internal fix was made in one of the tests.
A new line was added to
inst/include/is_ordered.h to appease CRAN.
The tbl_time time zone for
POSIXct indices is now set as the first non NA value of: “tzone” attribute ->
Sys.timezone() -> “UTC”. Previously there was no
Sys.timezone() step as there were problems with local time zones such as
America/New_York interacting with collapsing by day. Those problems have been fixed by using
DSTday with all
POSIXct indices even if
day is specified.
A new helper function,
collapse_by(), wraps the common idiom of
.tbl_time %>% mutate(date = collapse_index(date, "yearly")) and is the easiest way to use
tibbletime with the rest of the tidyverse.
partition_index() (and therefore higher level functions like
collapse_by()) now round using the entire
period argument to figure out the default start date. Meaning if
2 years is passed, it will round down the start of the series to the lower
2 year boundary, rather than just
year. This is a small change, but is technically breaking.
More efficient parsing of periods. Only noticably faster with a large number of groups.
This is a major update. It introduces a huge number of breaking changes as we heavily reworked the internals of the package. This should ensure the longevity of the package and provide maximum flexibility for its use with
dplyr. As this was still early in package development with minimal usage, and because we had issued a Warning in the README of the last update that we may change things, we have not made any attempt to support backwards compatability. From this point forward, however, we will support backwards compatability as we feel that we have reached a more stable implementation.
With that out of the way, here is a complete list of changes.
period argument no longer supports the ‘period formula’ (e.g.
1~year). It added unnecessary complication with little benefit. Rather, a character should be used like
'1 year'. See the documentation of
partition_index() for full details.
time_formula arguments still support the
from ~ to style syntax, but the left and right hand sides must now be characters, rather than bare date specifications. In English, rather than
2013 ~ 2014, you must use
'2013' ~ '2014'. This is easier to program with and also allows you to pass in variables to the time formula, which previously did not work well.
time_filter() has become
filter_time(). This naming is easier to remember now that a suite of
time_*() functions is not being developed and is easier to find with autocompletion.
partition_index() splits an index by period and returns an integer vector corresponding to the groups.
collapse_index() collapses an index by period so that all observations falling in that interval share the same date. This is most useful when used to then group on the index column.
There is full support for
POSIXct classes as the index, and there is experimental support for
create_series() now has an explicit
as_period() gains an
include_endpoints argument for including the last data point if
side = "start" is specified or the first data point if
side = "end" is used.
There are a number of new “getter” functions for accessing the index and time zone of
tbl_time objects. These are useful for package development.
parse_period() for general use in other related packages.
Warnings are now generated if the user is not using a sorted index.
time_ceiling() are convenient wrappers to
lubridate functions for altering dates to period boundaries.
time_unnest() is used to specifically unnest a
tibble object with a list-column of
create_series() allows the user to create a
tbl_time object with a regularly spaced sequence of dates.
time_group() has become the workhorse function for creating time based groups used in changing periodicity and other grouped time based calculations.
tmap() now also accept a formula-based
You now have to explicitely load
tidyr to use any functions from those packages. Previously they were reexported, but this seems unnecessary.
Added vignettes on intro, filtering, and
Added more extensive
Internal global utilities moved to
Added test coverage. (#2)
Added package documentation page. (#3)
Added versions to all imported packages.
Fixed an issue with
[ in combination with
tibble (>= 126.96.36.19901) for correct behavior.
Fixed a bug where using
tidyr::nest() would cause the nested tibbles to lose their time attributes.
Fix a bug where filter_time(data, ~yyyy-mm-dd) would be parsed as
yyyy-mm-dd 00:00:00 ~ yyyy-mm-dd 00:00:00 instead of
yyyy-mm-dd 00:00:00 ~ yyyy-mm-dd 23:59:59.
Fix a bug with as.Date / as.POSIXct operator collision in