Предполагая, что ОП хочет сопоставить все элементы в 'main', а не в столбце, мы можем использовать match
, а затем replace
значения
i1 <- match(main, cat[,1])
replace(main, !is.na(i1), cat[,2])
# [,1] [,2] [,3]
#[1,] "toys" "345" "1"
#[2,] "food" "45" "2"
или другое можно создать имя vector
и использовать его для замены
v1 <- setNames(cat[,2], cat[,1])[main]
main[!is.na(v1)] <- v1[!is.na(v1)]
main
# [,1] [,2] [,3]
#[1,] "toys" "345" "1"
#[2,] "food" "45" "2"