This function takes a dataframe and changes column names in the following order: 1) Trims whitespace on both sides, 2) converts to uppercase, 3) replaces punctuation of any length with a single underscore, 4) removes trailing underscores from native column names that often times have trailing punctuation (usually decimals)

format_names(
  list,
  order = c("btrim", "tolower", "uscore", "rm_trailing_punct", "rm_leading_punct")
)

See also