Skip to content

Commit

Permalink
Fix Warnings (no need for \%. % is fine.
Browse files Browse the repository at this point in the history
  • Loading branch information
olivroy committed Jun 15, 2023
1 parent 6ea4ba9 commit a94a5c6
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 26 deletions.
46 changes: 30 additions & 16 deletions R/adorn_pct_formatting.R
Original file line number Diff line number Diff line change
@@ -1,41 +1,55 @@
#' Format a data.frame of decimals as percentages.
#' Format a `data.frame` of decimals as percentages.
#'
#' @description
#' Numeric columns get multiplied by 100 and formatted as percentages according to user specifications. This function defaults to excluding the first column of the input data.frame, assuming that it contains a descriptive variable, but this can be overridden by specifying the columns to adorn in the `...` argument. Non-numeric columns are always excluded.
#'
#' The decimal separator character is the result of `getOption("OutDec")`, which is based on the user's locale. If the default behavior is undesirable,
#' change this value ahead of calling the function, either by changing locale or with `options(OutDec = ",")`. This aligns the decimal separator character with that used in `base::print()`.
#' @description
#' Numeric columns get multiplied by 100 and formatted as
#' percentages according to user specifications. This function defaults to
#' excluding the first column of the input data.frame, assuming that it contains
#' a descriptive variable, but this can be overridden by specifying the columns
#' to adorn in the `...` argument. Non-numeric columns are always excluded.
#'
#' @param dat a data.frame with decimal values, typically the result of a call to `adorn_percentages` on a `tabyl`. If given a list of data.frames, this function will apply itself to each data.frame in the list (designed for 3-way `tabyl` lists).
#' @param digits how many digits should be displayed after the decimal point?
#' @param rounding method to use for rounding - either "half to even", the base R default method, or "half up", where 14.5 rounds up to 15.
#' @param affix_sign should the \% sign be affixed to the end?
#' @param ... columns to adorn. This takes a tidyselect specification. By default, all numeric columns (besides the initial column, if numeric) are adorned, but this allows you to manually specify which columns should be adorned, for use on a data.frame that does not result from a call to `tabyl`.
#' The decimal separator character is the result of `getOption("OutDec")`, which
#' is based on the user's locale. If the default behavior is undesirable,
#' change this value ahead of calling the function, either by changing locale or
#' with `options(OutDec = ",")`. This aligns the decimal separator character
#' with that used in `base::print()`.
#'
#' @param dat a data.frame with decimal values, typically the result of a call
#' to `adorn_percentages` on a `tabyl`. If given a list of data.frames, this
#' function will apply itself to each data.frame in the list (designed for
#' 3-way `tabyl` lists).
#' @param digits how many digits should be displayed after the decimal point?
#' @param rounding method to use for rounding - either "half to even", the base
#' R default method, or "half up", where 14.5 rounds up to 15.
#' @param affix_sign should the % sign be affixed to the end?
#' @param ... columns to adorn. This takes a tidyselect specification. By
#' default, all numeric columns (besides the initial column, if numeric) are
#' adorned, but this allows you to manually specify which columns should be
#' adorned, for use on a data.frame that does not result from a call to
#' `tabyl`.
#' @return a data.frame with formatted percentages
#' @export
#' @examples
#'
#' mtcars %>%
#' tabyl(am, cyl) %>%
#' adorn_percentages("col") %>%
#' adorn_pct_formatting()
#'
#'
#' # Control the columns to be adorned with the ... variable selection argument
#' # If using only the ... argument, you can use empty commas as shorthand
#' # to supply the default values to the preceding arguments:
#'
#'
#' cases <- data.frame(
#' region = c("East", "West"),
#' year = 2015,
#' recovered = c(125, 87),
#' died = c(13, 12)
#' )
#'
#'
#' cases %>%
#' adorn_percentages("col", , recovered:died) %>%
#' adorn_pct_formatting(, , , recovered:died)
#'
#'

adorn_pct_formatting <- function(dat, digits = 1, rounding = "half to even", affix_sign = TRUE, ...) {
# if input is a list, call purrr::map to recursively apply this function to each data.frame
if (is.list(dat) && !is.data.frame(dat)) {
Expand Down
34 changes: 24 additions & 10 deletions man/adorn_pct_formatting.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit a94a5c6

Please sign in to comment.