This standardises names with the legacy approach that was used in
tidyverse packages (such as tibble, tidyr, and readxl) before
vec_as_names()
was implemented. This tool is meant to help
transitioning to the new name repairing standard and will be
deprecated and removed from the package some time in the future.
Examples
if (rlang::is_installed("tibble")) {
library(tibble)
# Names repair is turned off by default in tibble:
try(tibble(a = 1, a = 2))
# You can turn it on by supplying a repair method:
tibble(a = 1, a = 2, .name_repair = "universal")
# If you prefer the legacy method, use `vec_as_names_legacy()`:
tibble(a = 1, a = 2, .name_repair = vec_as_names_legacy)
}
#>
#> Attaching package: ‘tibble’
#> The following object is masked from ‘package:vctrs’:
#>
#> data_frame
#> Error in tibble(a = 1, a = 2) :
#> Column name `a` must not be duplicated.
#> Use `.name_repair` to specify repair.
#> Caused by error in `repaired_names()`:
#> ! Names must be unique.
#> ✖ These names are duplicated:
#> * "a" at locations 1 and 2.
#> New names:
#> • `a` -> `a...1`
#> • `a` -> `a...2`
#> # A tibble: 1 × 2
#> a a1
#> <dbl> <dbl>
#> 1 1 2