У вас есть особый случай поиска значений, где индексом являются целые числа 1: 4. Это означает, что вы можете использовать векторную индексацию для решения вашей проблемы за один простой шаг.
Сначала создайте пример данных:
set.seed(1)
dat <- data.frame(col1 = sample(1:4, 10, replace = TRUE))
Затем определите значения поиска и используйте подмножество [
, чтобы найти желаемые результаты:
values <- c("G", "H", "J", "K")
dat$col2 <- values[dat$col1]
Результаты:
dat
col1 col2
1 2 H
2 2 H
3 3 J
4 4 K
5 1 G
6 4 K
7 4 K
8 3 J
9 3 J
10 1 G
В целом, вы можете использовать [
подмножество в сочетании с match
для решения этой проблемы:
index <- c(1, 2, 3, 4)
values <- c("G", "H", "J", "K")
dat$col2 <- values[match(dat$col1, index)]
dat
col1 col2
1 2 H
2 2 H
3 3 J
4 4 K
5 1 G
6 4 K
7 4 K
8 3 J
9 3 J
10 1 G