Releases: tidyverts/tsibble
Releases · tidyverts/tsibble
tsibble v0.4.0
Breaking changes
- Restructured windowed functions to follow the
purrr
style exactly (#35):slide()
,tile()
,stretch()
return lists only instead of numerics before.- added
slide2()
,pslide()
to map over multiple inputs simultaneously. - added other type-stable variants such as
slide_dbl()
,slide_int()
,slide_chr()
,slide_lgl()
.
- A negative window size results in a backward moving direction.
slide()
gained a new argument.partial
to support partial sliding.
- Renamed
x
to.x
inslider()
,tiler()
,stretcher()
. pslider()
,ptiler()
,pstretcher()
support multiple inputs now, and split them in parallel.
New features
- New
holiday_aus()
for Australian national and state-based public holiday. - Defined
diff()
for year-week, year-month, and year-quarter. yearweek()
,yearmonth()
,yearquarter()
supported for character.- Added
slide2()
,pslide()
,tile2()
,ptile()
,stretch2()
,pstretch()
to slide over multiple inputs simultaneously (#33). - New S3 generics
units_since()
for index classes. - New
is_53weeks()
for determine if the year has 53 ISO weeks. - New S3 generics
key_sum()
for extending tsibble.
Improvements
as_tsibble.ts()
removed thetsp
attribute from thevalue
column.- Dropped the "lst_col" attribute from
lst_ts
(#25). - More informative error message when a data frame is passed to
tsibble()
. - More informative error message for
fill_na()
andcount_gaps
when a tsibble of unknown interval. as_tsibble.tbl_ts()
&as_tsibble.grouped_ts()
now return self (#34).id()
is used in the tsibble context (e.g.as_tsibble()
,tsibble()
,build_tsibble()
) regardless of the conflicts with dplyr or plyr, to avoid frustrating message (#36).select.tbl_ts()
now preserved index.
Bug fixes
- Fixed bug in
as.ts.tbl_ts()
for ignoring thevalue
argument when the key is empty. - Fixed bug in
[.tbl_ts()
when subsetting columns by characters (#30). - Fixed bug in
fill_na.tbl_ts()
dropping custom index class (#32). - Fixed bug in
format.yearweek()
due to the boundary issue (#27). - If a column passed as
index
containsNA
, abort.
Misc
- Suggested on
nycflights13 >= 1.0.0
.
tsibble v0.3.0
The tsibble package has a hexagon logo now! Thanks Mitch (@mitchelloharawild).
New functions
- New
difference()
computes lagged differences of a numeric vector. It returns a vector of the same length as the input withNA
padded. It works withmutate()
. - Added the support of
gather()
/spread()
,nest()
/unnest()
totbl_ts
.
Defunct
- retired
tsummarise()
.
Internal changes
- If
index2
deviates fromindex
(usingindex_by()
), theindex2
will be part of grouping variables.
tsibble v0.2.0
This release (hopefully) marks the stability of a tsibble data object (tbl_ts
). A tbl_ts
contains the following components:
key
: single or multiple columns uniquely identify observational units over time. A key consisting of nested and crossed variables reflects the structure underlying the data. The programme itself takes care of the updates in the "key" when manipulating the data. The "key" differs from the grouping variables with respect to variables manipulated by users.index
: a variable represent time. This together the "key" uniquely identifies each observation in the data table.index2
: why do we need the second index? It means re-indexing to a variable, not the second index. It is identical to theindex
most time, but start deviating when usingindex_by()
.index_by()
works similarly togroup_by()
, but groups the index only. The dplyr verbs, likefilter()
,mutate()
, operates on each time group of the data defined byindex_by()
. You may wonder why introducing a new function rather than usinggroup_by()
that users are most familiar with. It's because time is indispensable to a tsibble,index_by()
provides a trace to understanding how the index changes. For this purpose,group_by()
is just too general. For example,index_by()
+summarise()
aggregates data to less granular time period, leading to the update in index, which is nicely and intuitively handled now.interval
: aninterval
class to save a list of time intervals. It computes the greatest common factor from the time difference of theindex
column, which should give a sensible interval for almost all the cases, compared to minimal time distance. It also depends on the time representation. For example, if the data is monthly, the index is suggested to use ayearmonth()
format instead ofDate
, asDate
only gives the number of days not the number of months.regular
: since a tsibble factors in the implicit missing cases, whether the data is regular or not cannot be determined. This relies on the user's specification.ordered
: time-wise and rolling window functions assume data of temporal ordering. A tsibble will be sorted by its time index. If a key is explicitly declared, the key will be sorted first and followed by arranging time in ascending order. If it's not in time order, it broadcasts a warning.
Breaking changes
- Deprecated
tsummarise()
and its scoped variants. It can be replaced by the comboindex_by()
+summarise()
(#20).tsummarise()
provides an unintuitive interface where the first argument keeps the same size of the index, but the remaining arguments reduces rows to a single one. Analogously, it doesgroup_by()
and thensummarise()
. The proposedindex_by()
solves the issue of index update. - Renamed
inform_duplicates()
(defunct) tofind_duplicates()
to better reflect its functionality. key_vars()
andgroup_vars()
return a vector of characters instead of a list.distinct.tbl_ts()
now returns a tibble instead of an error.- No longer reexported
dplyr::do()
andtidyr::fill()
, as they respect the input structure. - Defunct
index_sum()
, and replaced byindex_valid()
to extend index type support.
New functions
index_by()
groups time index, as the counterpart ofgroup_by()
in temporal context.- A new S3 generic
count_gaps()
andgaps()
counts time gaps (implicit missing observations in time). yearweek()
creates and coerces to a year-week object. (#17)
API changes
fill_na.tbl_ts()
gained a new argument of.full = FALSE
..full = FALSE
(the default) insertsNA
for each key within its time period,TRUE
for the entire time span. This affects the results offill_na.tbl_ts()
as it only tookTRUE
into account previously. (#15)- Renamed the
drop
argument to.drop
in column-wise dplyr verbs. - Dropped the
duplicated
argument inpull_interval()
. group_by.tbl_ts()
behaves exactly the same asgroup_by.tbl_df
now. Grouping variables are temporary for data manipulation. Nested or crossed variables are not the type thatgroup_by()
thinks.
Improvements
- Added overall time span to the
glimpse.tbl_ts()
. - Slightly improved the speed of
fill_na()
.
Bug fixes
- Fixed
transmute.tbl_ts()
for a univariate time series due to unregistered tidyselect helpers. (#9). - Fixed bug in
select.tbl_ts()
andrename.tbl_ts()
for not preserving grouped variables (#12). - Fixed bug in
select.tbl_ts()
andrename.tbl_ts()
for renaming grouped variables.
Internal changes
- A
tbl_ts
gains a new attributeindex2
, which is a candidate of new index (symbol) used byindex_by()
. - The time interval is obtained through the greatest common factor of positive time differences. This covers broader cases than the minimal value.
attr(grouped_ts, "vars")
stores characters instead of names, same asattr(grouped_df, "vars")
.
tsibble v0.1.5
This release introduces major changes into the underlying tbl_ts
object:
- Dropped the attribute "key_indices" from a
tbl_ts
class to reduce the object size, and computed on the fly when printing. - Gained a new attribute "ordered" to identify if it is arranged by key and index in ascending order. If not, broadcast a warning. The warning likely occurs to
arrange()
andslice()
functions. - The "index" attribute in a
tbl_ts
object is a symbol now instead of a quosure. - The "key" attribute in a
tbl_ts
object is an unnamed list of symbols.
New functions
- "key" helpers:
key_update()
to change/update the keys for a given tsibble.
unkey()
as an S3 method for a tsibble of key size < 2.key_indices()
as an S3 method to extract key indices.
split_by()
to split a tsibble into a list of data by unquoted variables.build_tsibble()
allows users to gain more control over a tsibble construction.- Added
as_tsibble.msts()
for multiple seasonality time series defined in the forecast package.
Bug fixes
- Fixed
as_tsibble.ts()
for daily time series (when frequency = 7). group_by.tbl_ts()
does not accept named expressions.
Internal changes
- No longer throw an error when grouping the index.
- An interval of regularly spaced tsibble is (re)computed when creating the tsibble and performing the row-wise operations (like
filter()
andslice()
). This avoids unnecessary re-computation for many function calls.
tsibble 0.1.3
New functions
- Added the scoped variants for
tsummarise()
includingtsummarise_all()
,tsummarise_if()
,tsummarise_at()
.
API changes
- The windowed functions, including
slide()
,tile()
,stretch()
, are no longer defined as S3 methods. Several new variants have been introduced for the purpose of type stability, likeslide_lst()
(a list),slide_dfr()
(a row-binding data frame),slide_dfc()
(a column-binding data frame). - The
index
variable must sit in the first name-value pair intsummarise()
instead of any position in the call. transmute.tbl_ts()
keeps the newly created variables along with index and keys, instead of throwing an error before.- Depends on purrr (>= 0.2.3)
Bug fixes
- Fixed the error message in
glimpse.tbl_ts()
- Fixed
format.key()
for nesting crossed with another nesting.
tsibble 0.1.2
- New functions:
inform_duplicates()
- Reexported functions:
dplyr::*_join()
,dplyr::transmute()
,dplyr::distinct()
,tidyr::fill()
- Bug fixes. Thanks @mitchelloharawild for reporting several bugs.
- More informative error message.
- Better coding logic for
grouped_ts
.
Initial release on CRAN
Initial release on CRAN
Pre-release on Github
This release is primarily for John M. Chambers Statistical Software Award 2018.