r – A better way to map data to a column in a data frame?

I need to merge several large data frames and I sometimes add a unique identifiable column to merge them. I use this approach that works, but seems to take a lot of time. Basically, using Dplyr, I take the separate returns a variable, then mutate a new variable to each and then merge this variable returns to the original database. Is there a better way to accomplish this?

df <- tibble(
  x = rep(LETTERS, 10)

df %>%
separate (x)%>%
mute (y = 1: nrow (.))%>%
right_join (df)