test = select(-original) %>%
  # invert names, protecting a prefix
  mutate(test, name = str_replace(name, "El\\s", "El_") %>%
           str_invert %>%
           str_replace("_", " ")) %>%
  # find and number duplicate names
  group_by(name) %>%
  mutate(n = n(), o = 1:n()) %>%
  group_by() %>%
  mutate(name = ifelse(n > 1, str_c(name, "-", o), name)) %>%
  select(-n, -o)
  
# sanity check: no duplicates
rownames(test) = test$name

# or, alternately
stopifnot(!duplicated(test$name))