pivottabler 1.5.5

A minor maintenance release in anticipation of R 4.4.0:

R 4.4.0 changes the behaviour of the base function is.atomic() so that is.atomic(NULL) now returns FALSE. A couple of minor code changes were needed in the pivottabler package source code as a result of this change. Users of the pivottabler package should not need to make any changes to their code/scripts.

pivottabler 1.5.4

This release includes one improvement and one change in anticipation of R 4.3.0.

Improvements

pt$findCells() gains additional arguments lowN and highN. These arguments allow the cell with the min/max value or the N cells with the lowest/highest values to be easily found.

When either of these arguments is specified, the list of cells returned from pt$findCells() is sorted into the corresponding order by cell value.

Examples:

R 4.3.0 Change

The change described below will not affect most pivottabler package users.

R 4.3.0 includes a fix/breaking change that affects how the base R match() function works and how the %in% operator works. Specifically Date, POSIXct and POSIXlt values are matched as character values from R 4.3.0 rather than their underlying internal value. This breaks one of the pivottabler package automated tests. Whilst fixing this test, the opportunity was also taken to to improve how pivottabler filters work with Date, POSIXct and POSIXlt values when filters specify more than one value of these types (e.g. when visual totals are in use) by replacing uses of the base::intersect(), base::union() and base::unlist() functions with versions that better handle Date, POSIXct and POSIXlt values.

pivottabler 1.5.3

Improvements

Tables can now be exported to a wider variety of file formats using the basictabler and flextable packages. In addition to HTML, Latex and Excel (which can be generated directly by the pivottabler package), additional formats now supported using basictabler+flextable include include Microsoft Word, Microsoft PowerPoint and PDF. See the Outputs vignette for more details.

It is now easier to format the borders for specific cells. See the “Formatting cell borders for specific cells” section of the Styling vignette for more details.

pivottabler 1.5.2

Bug Fixes

This release includes one small bug fix that sometimes affected pivot tables that were converted to basic tables (from the basictabler package) and which then were exported to an Excel file. The issue caused row/column headings for totals or calculations (when multiple calculations are defined) to appear blank when the basictabler table was exported to Excel. This issue has been resolved in two ways:
1) Headings (such as totals and calculation names) now have a raw value specified in the converted basictabler table. 2) The basictabler package now (by default) will write the formatted value to the Excel file if no raw value exists.

pivottabler 1.5.1

Breaking Changes

stringsAsFactors in R 4.0.x and 4.1.x

From R 4.1.0, the default value of the stringsAsFactors argument in tbl$asDataFrame() changes to FALSE due to the deprecation of default.stringsAsFactors(). When the package is used on versions of R < 4.1.0, the package behaviour is unchanged. When the package used on R 4.0.x versions, a warning message is displayed about the change in future behaviour. The logic for this change was actually implemented in version 1.5.0 of the package but the impact will be felt with the release of R 4.1.0.

Bug Fixes

pivottabler 1.5.0

Overview

This release includes one potentially breaking change and many small enhancements across various parts of the package.

Reminder: The package now only contains one introductory vignette (due to the constraints on CRAN). The full set of 15+ vignettes can be found at: http://www.pivottabler.org.uk/articles/

Breaking Changes

Stricter definition of empty cells

When retrieving cells using pt$getCells() with the excludeEmptyCells parameter, or when searching cells using pt$findCells() with the emptyCells parameter, previous versions of the package would only treat cells as empty if they were related to a data group marked as empty. Cells with NULL values were not considered as empty.

Starting with this version, cells with NULL values (i.e. where is.null(cell$rawValue)==TRUE) are also regarded as empty. This may result in more cells being regarded as empty. The previous behaviour is still available by specifying compatibility=list(legacyEmptyCellMatching=TRUE) as an argument when creating the pivot table, either in PivotTable$new() or one of the quick pivot functions such as qpvt().

Improvements

Bug Fixes

pivottabler 1.4.0

Overview

This release includes one potentially breaking change and many small enhancements across various parts of the package.

Reminder: The package now only contains one introductory vignette (due to the constraints on CRAN). The full set of 15+ vignettes can be found at: http://www.pivottabler.org.uk/articles/

Breaking Changes

Row group and column group captions for blank values

When generating HTML, previous versions of the package would not output any caption for data groups with a blank null (e.g. NULL). This could lead to rows collapsing to a few pixels in height (if all of the cells on the row also had no value). Starting with v1.4.0, a non-breaking space character is emitted instead (HTML &nbsp;), in the same way that other parts of the pivot table sometimes also emit a non-breaking space character. This should make minimal difference to the visual appearance of the table, however it may cause issues for users who require the previous behaviour. The previous behaviour is still available by specifying compatibility=list(noDataGroupNBSP=TRUE) as an argument when creating the pivot table, either in PivotTable$new() or one of the quick pivot functions such as qpvt().

A future version of the package will likely include an option to prevent all non-breaking space characters from being emitted and more correctly use CSS style rules instead to control minimum data group heights/widths.

Documentation Changes

Improvements

Deprecated

The following can still be used but now emits a deprecation warning:

pivottabler 1.3.1

This release includes two small bug fixes only:

pivottabler 1.3.0

Overview

This release introduces a new layout type - outline layout - that can make larger pivot tables with multiple levels of row groups more readable and more visually appealing.

Several small improvements mean that irregular pivot tables (e.g. two pivot tables in one) are now easier to construct.

The package vignettes have grown too large be hosted on CRAN. They have been moved to: http://www.pivottabler.org.uk/articles/

Improvements

Bug Fixes

The atLevel argument of pt$addColumnDataGroups() and pt$addRowDataGroups() now behaves correctly / more intuitively. Previously it would often add the data groups at the level below the level expected.

Deprecated

The following can still be used but now emit a deprecation warning:

pivottabler 1.2.3

This release includes one small bug fix only: Adding more than nine calculations causes the calculation columns to appear in the wrong order (issue #25).

pivottabler 1.2.2

This release includes one small bug fix only: Calling pt$setStyling(cells=…) on an empty list of cells now succeeds without an error (issue #23).

pivottabler 1.2.1

This release includes one small bug fix only: Calling pt$asDataFrame() on a pivot table containing blank/NA cells now succeeds without an error (issue #20).

pivottabler 1.2.0

Overview

This release includes one small potentially breaking change and one bug fix.

Breaking Changes

Changes to rowspan and colspan attributes in HTML

When generating HTML, previous versions of the package would always generate rowspan and colspan attributes for merged table cells, even if the number of rows or columns being spanned was only one. Starting with v1.2.0, rowspan and colspan attributes are only generated where the number of rows or columns being spanned is greater than one. This should make no difference to the visual appearance of the table, however it may cause issues for users who require the previous behaviour. The previous behaviour is still available by specifying compatibility=list(explicitHeaderSpansOfOne=TRUE) as an argument when creating the pivot table, either in PivotTable$new() or one of the quick pivot functions such as qpvt().

Improvements

Small improvements have been made to the conversion of pivot tables to basic tables (in the basictabler package). Starting from this version of pivottabler and v0.3.0 of basictabler the HTML that is generated from the two packages should be more consistent. Previously, basictabler would render row/column header cells using the HTML td element instead of the more correct th element. Thanks to @rickwargo for reporting this difference in HTML output between the two packages.

Bug Fixes

Calling pt$setStyling() on the same cell multiple times now succeeds (previously failed with error).

pivottabler 1.1.0

Overview

This release includes:

Breaking Changes

This version of pivottabler generates slightly different CSS/HTML for the built-in themes/styling compared to previous versions. The visual appearance is unchanged. This may be a breaking change for users who require the generated CSS/HTML code to be identical to previous versions.

More details:

In version 1.0.0 and earlier versions of pivottabler, the built-in themes used a shared set of style declarations for both calculation value cells and total cells. From pivottabler version 1.1.0 onwards, total cells use a separate set of style declarations. The visual appearance of pivot tables using the built-in themes has not changed, only the HTML/CSS that is generated is slightly different - so the great majority of users will not be affected.

This change reduces the risk of styling changes to totals accidentally affecting all calculation value cells and vice-versa.

The output of earlier versions, where total cells and calculation value cells use a shared set of style declarations, can be generated by specifying compatibility=list(totalStyleIsCellStyle=TRUE) as an argument when creating the pivot table, either in PivotTable$new() or one of the quick pivot functions such as qpvt().

Improvements

pivottabler 1.0.0

Breaking Changes

Improvements

Bug Fixes

Upcoming Changes

No breaking changes currently planned.

pivottabler 0.4.0

Breaking Changes

Improvements

Bug Fixes

Upcoming Changes

pivottabler 0.3.0: Performance Improvements and Quick-Pivot Functions

Breaking Changes

Improvements

Bug Fixes

Upcoming Changes

pivottabler 0.2.0: New Output/Conversion Options, New Find Options

Breaking Changes

(none)

Improvements

Bug Fixes

pivottabler 0.1.0

Initial version.