The vecvec class has been reimplemented using S7, replacing the previous vctrs
implementation. Existing code using vecvec objects should continue to work.
- Removed
new_vecvec(), which is replaced byclass_vecvecfor S7 consistency. - Extension packages building new vecvec data types will need to use S7 classes
that have the parent class
class_vecvec. - The internal data structure for
vecvecobjects has been overhauled. In practice these internal indices should not be used by users or developers, as the structure can change in the future to accommodate faster variants for special cases (#7).
vecvecclassed objects now work as matrices and arrays (#15).is_vecvec()tests whether an object is avecvec.class_vecvecS7 class and constructor for vecvec objects.- Added
vctrsmethods for backwards compatibility and vctrs interoperability.
- Substantially faster performance and reduced object size
- Adjacent compatible vectors are now automatically flattened when constructing
or modifying a
vecvec, reducing fragmentation.
- Fixed missing value handling with
is.na()forvecvecobjects (#8).
- Added
vec_math()forvecvecobjects. - Added
vec_apply()for applying functions to each vector in avecvec.
- vecvec now works with
vctrs::new_rcrdtype vectors. - Added
classargumentvecvec()to specify subclasses. - Removed unnecessary cast in
Opswithvecvectypes.
- Fixed error when
Opswhenvecvecand second argument are both length 1. - Fix casting from
vecvecdropping common attributes. - Fixed
vec_proxy_equal()not comparing values across vectors.
new_vecvec()andvecvec()class constructors.unvecvec()class deconstructor to reduce back to atomic vectors.{vctrs}method dispatch forvecvecdata types.