Deep copy of ud_convert() input to avoid side
effects; #403
Set C++17 standard for old versions of R; #402
Add methods for cbind and rbind; fixes
#311
Performance improvements in data.frame methods;
suggested in #361 @grcatlin
Fix weighted.mean.units for unitless objects;
#363
Fix incorrect use of round() in %% and
%/% methods; #365 @UchidaMizuki
Fix ggplot2 deprecation warnings; #367
Fix hist() error; #368
Add support for lims() in ggplot2
scales; #370
Fix simplification of inverse units; #378
Replace call to Rf_error() with
Rcpp::stop(); RcppCore/Rcpp#1247
Fix UBs in the C++ glue code; #380
Add support for brew path discovery in macOS;
#384
Several performance improvements; #387, #388, #393, #400 addressing #386, #389
Improve keep_units() helper for more general usage
scenarios; #394 @d-morrison addressing #392
Add ud_convert() to convert units of a vector; #399
@dlebauer addressing
#398
Fix scale_units for upcoming version of ggplot2;
#401
Identical unit division and multiplication will now respect
units_options(simplify = FALSE) reverting a change from
#310; #355 @billdenney
Fix scale_units when both unit and
trans are specified; #357
Names are preserved when doing unit conversions; #305 @billdenney
Identical units will always divide (/) and allow
integer division (%/%). And, inverse units will always be
able to multiply; #310 @billdenney
Compare units via ud_compare(), fixing inconsistent
results for aliases and symbols; #339, #346, #347
Fix units<-() to treat an empty unit the same as
NULL; #332
New as.data.frame() method for
mixed_units; #309
Use short paths for database loading on Windows to fix UTF-16 issues; #342
Add example in the docs about reversing a ggplot2 units scale; #343
Force storage mode to double; #344 addressing #324
Fix units in transformed axis; #323
Consider unitless as radians in trigonometric functions; #328
fix %/% and %% if arguments have
different units; #313
fix multiplier parsing for exp(log(x)) operations;
#321
fix specification of secondary axes with
scale_units; #326
enhance unit mapping for newly installed units; #290
remove deprecations: install_symbolic_unit,
remove_symbolic_unit,
install_conversion_constant,
install_conversion_offset; #290
fix multipliers for round trip log-exp operations; #292
integrate ggplot2 scales (previously in the
ggforce package) to automatically print axes with units;
#294 addressing #164
fix all.equal.units for non-units
current
fix zero power; #285
fix unique.units to support arrays and matrices,
implement methods for duplicated and
anyDuplicated
fix plot labels with spaces; #298 addressing #297
always add units to labels, including user-provided ones; as part of #298
new symbols/names with a percentage character are not allowed due to an upstream bug; #289
enhance pillar integration; #273, #275, #280 @krlmlr
new unique method for units and
mixed_units objects; #283 addressing #277 @lewinfox
allow longer units grouping; #270 addressing #269 @bart1
fix regression in set_units method for
mixed_units to ensure that ordering is preserved; #272
addressing #271
add load_units_xml to enable database reloading as
well as loading user-provided unit systems; #254 addressing #243,
#244
add install_unit and remove_unit for
adding/removing custom user-defined symbols or names, with optional
mapping to existing units; install_symbolic_unit,
remove_symbolic_unit,
install_conversion_constant,
install_conversion_offset are deprecated; #261 addressing
#89
add keep_units, a helper to apply functions that do
not preserve units; #255 addressing #252
fix as_units(""), which is now equivalent to
unitless; #199
fix plot axes for plot.formula and
plot.data.frame; #213
fix arithmetic for powers above 1 and below -1; #264
improve arithmetic of logarithms; #249
export ud_are_convertible; #263 addressing #258
@cregouby
remove deprecations: as.units, as_cf,
make_unit, parse_unit; #259
remove deprecated pre-computed ud_units database;
#259
port isFALSE to fix regression in old R versions;
#230 addressing #229
fix replacement operation for units objects; #233
addressing #232
fix compatibility with dplyr 1.0; #247 addressing #239
prettier str print for units and mixed units; #228
addressing #227
add compatibility with upcoming tibble v3.0.0; #225
fix support for weights with units in weighted.mean;
#205
invalid names for new units now trigger a proper error message; #209 addressing #208
fix issues in strict latin1 environments; #202
improve platform dependent encodings handling; #183
don’t force as.numeric when unnecessary; #182
addressing #181
fix valgrind issues on CRAN and tidy up tests; #193 addressing #192
new method drop_units for data frames; #191
addressing #187
vectors with mixed units are now supported; #145
NA values for units now trigger a proper error
message; #163
print units as [unit] more consistently, e.g. for single unit and in data.frames; #132
improve printing of unitless units; provide option to print something else than 1; #150
fix printing unitless in labels when negative_power
is TRUE; #133
install_symbolic_unit now adds a dimensionless unit,
integrated in the units system, meaning that prefixes on it work as
well; #71
install_conversion_constant and
install_conversion_offset now install a new unit that is a
function of an existing udunits unit.; #71, #84
unit simplification can now be user-controlled by
units_options; #89
set_units(15, mg/kg) is now no longer simplified to
1e-9 unitless; #89
directly uses the udunits2 C library; drop dependence on R
package udunits2, fixing R package udunits2
memory leaks; #135
drops %*%, no longer gives warning when
loading
deal with trigonometric functions for units degree; return units rad on inverse trigonometric functions.
Unit creation has been significantly refactored.
units<- now accepts strings or quoted language objects
on the right hand side, powered by new S3 methods for
as_units. All valid unit symbols and unit names recognized
by package ‘udunits2’ are now accepted. New user facing function
make_units() (plural s) is also provided. See
?as_units for details. @t-kalinowski
new functions valid_udunits() and
valid_udunits_prefixes() generate tidy dataframes listing
all the valid unit names, symbols, and prefixes recognized by udunits.
@t-kalinowski
new function install_symbolic_unit() for adding
custom, user-defined units. @t-kalinowski
make_unit and parse_unit (singular
unit) have been deprecated, please use as_units
instead.
ud_units is no longer necessary and is
soft-deprecated, and may be removed in a future release.
add %*% as an S3 generic; #54
add %% and %/% to
Ops.units
support unary + and - ; #56
add seq method for units, converting
units to those of the first argument
Deprecate as.dt for as_difftime,
as.units for as_units and as_cf
for deparse_unit
add all.equal method for units;
#51
add deparse_unit to replace
as_cf
add calender/time conversions between udunits time
units like minutes from 1900-0-0, and R’s
POSIXct and Date
add as_units to replace
as.units
rename as.dt to as_difftime
add support for user-defined unit conversion; #31
allow for 1/n integer powers, as in
set_units(1:10, m^-2) ^ 0.5; #29
properly set log units after log transform; #33
sin, cos and tan no longer
complain when units is rad, and return
unitless; #40
now allow for set_units(1:3, "°C") and also
set_units(1:3, "degree_Celsius") by resolving names to
symbols first; #43
set_units(x) with x numeric sets units
to unitless; #41
fix a result units bug when multiplying or dividing units vectors of different length, #34
add a rep method for units
vectors
set_units(1:10, m) which does not require
to declare or define, m (m is resolved
automatically from ud_units)