R/rename.R

Defines functions log_rename rename_with rename_at rename_if rename_all rename

Documented in rename rename_all rename_at rename_if rename_with

#' @export
rename <- function(.data, ...) {
    log_rename(.data, .fun = dplyr::rename, .funname = "rename", ...)
}

#' @export
rename_all <- function(.tbl, ...) {
    log_rename(.tbl, .fun = dplyr::rename_all, .funname = "rename_all", ...)
}

#' @export
rename_if <- function(.tbl, ...) {
    log_rename(.tbl, .fun = dplyr::rename_if, .funname = "rename_if", ...)
}

#' @export
rename_at <- function(.tbl, ...) {
    log_rename(.tbl, .fun = dplyr::rename_at, .funname = "rename_at", ...)
}

#' @export
rename_with <- function(.data, ...) {
    log_rename(.data, .fun = dplyr::rename_with, .funname = "rename_with", ...)
}

log_rename <- function(.data, .fun, .funname, ...) {
    cols <- names(.data)
    newdata <- .fun(.data, ...)
    if (!"data.frame" %in% class(.data) | !should_display()) {
        return(newdata)
    }
    renamed_cols <- setdiff(names(newdata), cols)
    n <- length(renamed_cols)
    if (n > 0) {
        display(glue::glue("{.funname}: renamed {plural(n, 'variable')}",
                       " ({format_list(renamed_cols)})"))
    }
    newdata
}

Try the tidylog package in your browser

Any scripts or data that you put into this service are public.

tidylog documentation built on July 8, 2020, 7:20 p.m.