File size: 594 Bytes
4715029
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
capitalize <- function(str) {
  sub("^.", toupper(substr(str, 1, 1)), str)
}

renamer <- function(name) {
  parts <- strsplit(name, "_", fixed = TRUE)[[1]]
  units <- NULL
  
  if (length(parts) > 1 && tail(parts, 1) %in% c("mm", "g")) {
    units <- paste0(" (", tail(parts, 1), ")")
    parts <- head(parts, -1)
  }
  
  parts <- vapply(parts, capitalize, character(1))
  paste0(paste(parts, collapse = " "), units)
}

rename_all <- function(names) {
  vapply(names, renamer, character(1))
}

palmerpenguins::penguins |>
  dplyr::rename_with(rename_all) |>
  readr::write_csv("penguins.csv")