NEWS
====

Versioning
----------

Releases will be numbered with the following semantic versioning format:

<major>.<minor>.<patch>

And constructed with the following guidelines:

* Breaking backward compatibility bumps the major (and resets the minor
  and patch)
* New additions without breaking backward compatibility bumps the minor
  (and resets the patch)
* Bug fixes and misc changes bumps the patch


numform 0.6.4 - 0.7.0
----------------------------------------------------------------

BUG FIXES

* `f_ordinal` incorrectly converted the numbers 11-13 to '11st', '12nd' & '13rd'.
  Spotted by Jonathan Zadra (see #27).

* `f_dollar` had a `leading_zero` argument that was always TRUE.  This can be set
  to `FALSE` now.


MINOR FEATURES

* `f_num` picks up the argument `retain.leading.zero` to enable users to keep a
  leading zero before the decimal point if the value contains no whole number.
  Suggested by Dan Li.

* `f_percent` picks up an explicit `s` argument.  `f_dollar` picks up and
  explicit `p` argument.  This allows the percent and dollar sign to be set
  explicitly.  This can be useful if you need to escape such characters, for
  example, for use in LaTeX.  Suggested by Chris Snyder (see issue #26).


CHANGES

* `glue::collapse` was exported but has bee changed to `glue::glue_collapse`.



numform 0.6.1 - 0.6.3
----------------------------------------------------------------

NEW FEATURES

* `f_pad_left` and `f_pad_right` added to make padding a vector easy by computing
  the width from the data.

* `round2` added as an alternative to the default `round`'s design to round 1/2
  to the nearest even number.  THis version rounds 1/2 up.

* `round_any` added to allow rounding to non-whole number values.



numform 0.5.1 - 0.6.0
----------------------------------------------------------------

BUG FIXES

* `f_denom` functions did not properly handle scientific notation.  Spotted by
  Wilfried N'Guessan (see #23).

NEW FEATURES

* `f_text_bar` added to convert numeric vectors into an ASCII horizontal bar
  plot representation.

MINOR FEATURES

* `f_denom` picks up a functionality to the 100 trillions.

IMPROVEMENTS

* The sub-expression '(NaN|NA|Inf)' added to additional numeric
  (`additional.numeric` argument) of the `alignment()` function.



numform 0.4.1 - 0.5.0
----------------------------------------------------------------

BUG FIXES

* Functions that enable the argument `less.than.replace = TRUE` would result in
  the wrong solution if the input value was negative.  This has been corrected.

* `f_quarter` didn't respect the `space` or `max` arguments for some methods.

* `alignment` failed to align correctly if there were leading spaces.

NEW FEATURES

* `highlight_cells` added as a quick and dirty way to add cell font highlighting.

* The `collapse` and `glue` functions from the **glue** package are reexported
  for easy string manipulation.

* `f_bin` (a.k.a. `f_interval`) added for turning `"[3,5)"` form from `cut` into
  a more human readable for.  There are several different forms of `f_bin` so
  use `?f_bin` to see them all.

* `fv_percent_lead` added to work similar to `fv_percent_diff` but using the
  formula T_n/T_n-1.

* `fv_percent_lead_fixed_relative` & `fv_percent_diff_fixed_relative` added in
  order to compute `fv_percent_lead` & `fv_percent_diff` but keeping the
  comparison year as a constant rather than using the prior year in the vector
  of elements.

* `f_data` and friends (see `?f_data`) added to convert between data units.  For
  example, move from  10,000,000,000 (Bytes) to 10GB (Gigabytes) instead.

MINOR FEATURES

* `f_denom` family of functions picks up a `less.than.replace` argument to
  replace values that say zero with a less than sing followed by a one and then
  the denomination.  For example, in `c(2, 1234)` the digit 2 becomes "<1K".

* `f_denom` picks up a `mix.denom` argument to allow for the mixing of
  denominations.  This is useful for tables with a total row that is a
  denomination higher than the rest of the column.

* `f_pp` added to lower typing on `f_prop2percent(digits = 0)` (a commonly used
  function and setting) and to also change the default digits value to 0 as is
  typically used in plotting.

* `constant_weekdays_abbreviation` added to provide an abbreviated form of
  weekdays.

* `f_month_name` & `f_month_abbreviation` added to convert to full name and
  3 letter abbreviated month formats.

* `f_weekday_name` & `f_weekday_abbreviation` added to convert to full name and
  3 letter abbreviated weekday formats.


CHANGES

* The argument `less_than_replace` in `f_prop2percent` & `f_percent` has been
  replaced with `less.than.replace` to make dot case consistent for arguments
  across the package.




numform 0.3.1 - 0.4.0
----------------------------------------------------------------

BUG FIXES

* `f_12_hour` did not format correctly if the vector contained missing (`NA`)
  values; see issue #12.

NEW FEATURES

* `f_year`, `f_12_hour`, `f_month`, and `f_weekday` (methods based functions)
  did not previously have closure, function retuning, forms (i.e., `ff_` form)
  making them inconsistent in usage.  These functions all have a closure, function
  returning, form.

* `f_quarter` added for working with business quarters.

* `f_degree` and friends (`f_latitude`, `f_longitude`, `f_fahrenheit`, &
  `f_celcius`) added for working with degrees in scales and tables.

MINOR FEATURES

* `f_wrap` picks up an `equal.lines` argument to add additional lines to make
  each element have the same number of new line characters.  This is useful for
  legend spacing.

* `f_wrap` picks up a `collapse` argument to `paste` + `collapse` a vector before
  processing.  This is useful wrapping subtitles or other longer text blocks.

* `f_title` picks up an `upper` and `lower` argument to allow the user to supply
  a vector of regexes to force to be upper/lower regardless of title case.




numform 0.0.6 - 0.3.0
----------------------------------------------------------------

NEW FEATURES

* `f_affirm` and `f_logical` added to convert logical and dummy values into
  yes/No or True/False strings respectively.

* alignment` added to easily align columns in table formatting functions from
  add-on R packages which may be confused by **numform**'s conversion of numeric
  to character class, though right table alignment should be maintained.

* `f_date` and `f_12_hour` added to convert dates and times into common in-text
  form.

* `f_replace` added as a ggplot2 scale `gsub` convenience function.  Defaults
  to replace '_' with ' '.

* `f_title` added as a ggplot2 scale `tools::toTitleCase` convenience function.

* `f_wrap` added as a ggplot2 scale `strwrap` + `paste(collapse =TRUE)`
  convenience function.

* `f_state` added for converting state names to their abbreviated form for plots.

* `f_year` added as a ggplot2 scale to convert to 2 digit year form convenience
  function.

* `f_abbreviation` added for converting string names to their abbreviated form.

* constants added for weekdays, months, and month abbreviations in order to make
  factor conversion of levels easier.  See `?constant_months` for more.

MINOR FEATURES

* `f_sign` picks up `negative` and `positive` assignments allowing for more
  control in format (previously +/- were assigned).  This enables the ability to
  give other characters tailored for document formats such as html, LaTeX, etc.

* `f_prop2percent` and `f_percent` pick up a logical `less_than_replace`
  argument that replaces values lower than this with a less than sign and the
  cut point specified by the `digits` argument.

CHANGES

* `f_denom` now returns `x` if the `max` < 1K.



numform 0.0.1 - 0.0.5
----------------------------------------------------------------

Format numbers for publication; includes the removal of leading zeros,
standardization of number of digits, addition of affixes, and a p-value
formatter.  These tools combine the functionality of several 'base' functions
such as paste(), format(), and sprintf() into specific use case functions that
are named in a way that is consistent with usage, making their names easy to
remember and easy to deploy.