Вот два решения, которые, на мой взгляд, являются вашей задачей (немного сложно судить, поскольку вы не предоставляете никаких конкретных данных). Давайте предположим, что это (как) ваши данные:
df <- data.frame(col1 = sample(LETTERS[1:5], 10, replace = T))
Решение 1 : base R
df$new <- ifelse(df$col1 == "A", 1,
ifelse(df$col1 == "B", 2,
ifelse(df$col1 == "C", 3,
ifelse(df$col1 == "D", 4, 5))))
Решение 2 : dplyr
library(dplyr)
df$new <- df %>%
mutate(col1 = case_when(col1 == "A" ~ 1,
col1 == "B" ~ 2,
col1 == "C" ~ 3,
col1 == "D" ~ 4,
TRUE ~ 5))
Результаты идентичны:
df
col1 new
1 E 5
2 C 3
3 D 4
4 C 3
5 A 1
6 E 5
7 B 2
8 A 1
9 B 2
10 E 5