ivs 0.2.0
CRAN release: 2023-03-17
-
The family of “set” functions has been renamed to include a
set_prefix, for example,iv_union()is nowiv_set_union(). This has been done to align with the new family of vctrs set functions, likevec_set_union(), and to reduce the ambiguity between the newiv_diff()helper andiv_difference()(nowiv_set_difference()). The old names are deprecated, and will be removed in a future release (#35).-
iv_complement()->iv_set_complement() -
iv_union()->iv_set_union() -
iv_intersect()->iv_set_intersect() -
iv_difference()->iv_set_difference() -
iv_symmetric_difference()->iv_set_symmetric_difference() - The same changes have been made for the
iv_pairwise_*()functions that share the same suffixes.
-
New family of functions that perform the inverse of
iv_between(), i.e. rather than detecting ifneedles[i], a vector value, falls between any intervals inhaystack, an iv, these detect ifneedles[i], an interval, includes any value fromhaystack, a vector. These functions are:iv_includes(),iv_locate_includes(),iv_count_includes(), andiv_pairwise_includes()(#41).New family of functions for identifying interval containers, which are intervals that aren’t contained within any other interval. These functions are:
iv_containers(),iv_identify_containers(),iv_identify_container(), andiv_locate_containers()(#20).New
iv_diff()for generating an iv from an existing vector that is in strictly increasing order (#17).New
iv_span()for computing a summary interval that encompasses the entire range of an existing iv (#49).New Examples vignette that links out to Stack Overflow questions that were solved with ivs. View it locally with
vignette("examples", package = "ivs").vec_ptype()andvec_ptype_finalise()methods have been added for the iv class. This should result in slightly better performance when combining many ivs together (#27).iv_locate_overlaps(),iv_locate_precedes(),iv_locate_follows(),iv_locate_between(), andiv_locate_includes()have all gained therelationshipargument from the underlying engine,vctrs::vec_locate_matches()(#45).iv_proxy()now returns the input unchanged if it doesn’t implement an S3 method, rather than erroring. In combination withis_iv(), this provides a way to check if an input implements a proxy method and to implement different behaviors depending on the result.In
iv(), incomplete value propagation is now done before thestart < endcheck, which fixes an inconsistent edge case (#36).You can now combine an iv containing unspecified components with any other iv (#33).
The
"iv"class name has been renamed to the more specific"ivs_iv"to better insulate it from potential collisions with classes from other packages (#25).Improved on the call reported by errors thrown in ivs (#23).
Switched to using
vec_run_sizes()andvec_chop(sizes =)internally, which improves performance in some cases (#50).Added a
NEWS.mdfile to track changes to the package.