janitor 2.2.1 (2024-12-22)

This is a trivial bugfix release whose only purpose is fixing a test that was failing on CRAN due to the way timezones are handled in Debian. In making that fix (PR #584), we made a small - technically breaking - improvement to a function that works with SAS dates. >99.9% of janitor users should be unaffected by this release.

Breaking changes

janitor 2.2.0 (2023-02-02)

Breaking changes

These are all minor breaking changes resulting from enhancements and are not expected to affect the vast majority of users.

New features

Minor features

Bug fixes

janitor 2.1.0 (2021-01-05)

New features

Bug fixes

janitor 2.0.1 (2020-04-12)

Bug fixes and Breaking changes

Transliteration of characters within make_clean_names() now operates across operating systems, independent of differences in stringi installations (Fix #365, thanks to @eamoncaddigan for reporting and @billdenney for fixing).

This bug patch represents a breaking change with the way that make_clean_names() worked in janitor versions 1.2.1.9000 and 2.0.0 as the transliterations are now more generalized and follow a more best-practice approach to transliterating to ASCII.

janitor 2.0.0 (2020-04-07)

Breaking changes

As part of the improvements to make_clean_names() and clean_names(), the ... argument was added, allowing the user to pass additional information to the underlying transformation function from the snakecase package, to_any_case(). This allows for greater user control of clean_names() / make_clean_names() and for new functionality like specifying case = "title" for transforming variable names back to title case for making plots.

Major features

Minor features

Bug fixes

janitor 1.2.1 (2020-01-22)

Adjusted a single test to account for a different error message produced by the tidyselect package. No changes to package functionality.

janitor 1.2.0 (2019-04-20)

Major features

This function can be supplied as a value for the .name_repair argument of as_tibble() in the tibble package. For example: as_tibble(iris, .name_repair = make_clean_names).

This feature (#50) took almost 3 years from conception to implementation. Major thanks to @billdenney for making it happen!

Minor features

Bug fixes

janitor 1.1.1 (2018-07-30)

Release summary

Patches a bug introduced in version 1.1.0 where excel_numeric_to_date() would fail if given an input vector containing an NA value.

Bug fixes

janitor 1.1.0 (2018-07-17)

Release summary

This release was requested by CRAN to address some minor package dependency issues. It also contains several updates and additions described below.

Major features

The new function row_to_names() handles the case where a dirty data file is read in with its names stored as a row of the data.frame, rather than in the names. This function sets the names of the data.frame to this row and optionally cleans up the rows above and including where the names were stored. Thanks to @billdenney for writing this feature.

Minor features

excel_numeric_to_date() can now convert fractions of a day to time, e.g., excel_numeric_to_date(43001.01, include_time = TRUE) returns the POSIXlt value "2017-09-23 00:14:24". Thanks to @billdenney.

Breaking changes

As part of excel_numeric_to_date() now handling times, if a Date-only result is requested (the default behavior of include_time = FALSE), any fractional part of the date is now removed. The printed date itself is identical, but the internal representation of this object now contains only the integer part of the date. For example, while under both the old and new versions of this function the call excel_numeric_to_date_old(42001.1) would return the Date object "2014-12-28", calling as.numeric on this Date result would previously return 16432.1, while now it returns 16432.

This an improved behavior, as now excel_numeric_to_date(42001.1, include_time = FALSE) == as.Date("2014-12-28") returns TRUE, while previously it would appear to be equivalent from the printed value but this comparison would return FALSE.

janitor 1.0.0 (2018-03-17)

Release summary

A stable version 1.0.0, with a new tabyl API and with breaking changes to the output of clean_names().

This builds on the original functionality of janitor, with similar-but-improved tools and significantly-changed implementation.

Breaking changes

A fully-overhauled tabyl

tabyl() is now a single function that can count combinations of one, two, or three variables, ala base R’s table(). The resulting tabyl data.frames can be manipulated and formatted using a family of adorn_ functions. See the tabyls vignette for more.

The now-redundant legacy functions crosstab() and adorn_crosstab() have been deprecated, but remain in the package for now. Existing code that relies on the version of tabyl present in janitor versions <= 0.3.1 will break if the sort argument was used, as that argument no longer exists in tabyl (use dplyr::arrange() instead).

Improvements to clean_names

clean_names() now detects and preserves camelCase inputs, allows multiple options for case outputs of the cleaned names, and preserves whether there’s space between letters and numbers. It also transliterates accented letters and turns # into "number".

These changes may cause old code to break. E.g., a raw column name variableName would now be converted to variable_name (or variableName, VariableName, etc. depending on your preference), where previously it would have been converted to variablename.

To minimize this inconvenience, there’s a quick fix for compatibility: you can find-and-replace to insert the argument case = "old_janitor", preserving the old behavior of clean_names() as of janitor version 0.3.1 (and thus not have to redo your scripts beyond that.)

No further changes are planned to clean_names() and its results should be stable from version 1.0.0 onward.

Major features

Minor features

Bug fixes


janitor 0.3.1 (2018-01-04)

Release summary

This is a bug-fix release with no new functionality or changes. It fixes a bug where adorn_crosstab() failed if the tibble package was version > 1.4.

Major changes to janitor are currently in development on GitHub and will be released soon. This is not that next big release.


janitor 0.3.0 (2017-05-06)

Release summary

The primary purpose of this release is to maintain accuracy given breaking changes to the dplyr package, upon which janitor is built, in dplyr version >0.6.0. This update also contains a number of minor improvements.

Critical: if you update the package dplyr to version >0.6.0, you must update janitor to version 0.3.0 to ensure accurate results from janitor’s tabyl() function. This is due to a change in the behavior of dplyr’s _join functions (discussed in #111).

janitor 0.3.0 is compatible with this new version of dplyr as well as old versions of dplyr back to 0.5.0. That is, updating janitor to 0.3.0 does not necessitate an update to dplyr >0.6.0.

Breaking changes

Major features

Deprecated the following functions: - use_first_valid_of() - use dplyr::coalesce() instead - convert_to_NA() - use dplyr::na_if() instead - add_totals_row() and add_totals_col() - replaced by the single function adorn_totals()

Minor features

Bug fixes


janitor 0.2.1 (2016-10-30)

Bug fixes


janitor 0.2.0 (2016-10-03)

Features

Major

Submitted to CRAN!

Minor

Bug fixes

Package management


janitor 0.1.2

Features

Major

Minor

Package management


janitor 0.1 (2016-04-17)