Вот решение.
Для каждого кода вы привязываете значение и фрейм данных. purrr::map_dfr
затем объединит все вместе как информационный фрейм, связав строки.
library(tidyverse)
codes = data.frame(codes=c(123,234,345))
categ = data.frame(set=1:3, categ=c("a","b","c"))
codes$codes %>% map_dfr(~{cbind(code=.x,categ)})
Но, как сказал Тунг, вы должны опубликовать воспроизводимый пример в следующий раз. Для этого вы можете использовать функцию dput
.