У меня есть два набора данных. Один имеет длинные комбинации текстовых клавиш, прикрепленных к идентифицирующим данным:
set.seed(123)
library(tidyverse)
id <- paste0("V", sample((1000:9999), size = 5))
text <- c("ARROW", "ARROWHEAD", "OTHERARROW", "OTHER", "HEADOTHER")
df <- tibble(id, text)
df
id text
<chr> <chr>
1 V3588 ARROW
2 V8093 ARROWHEAD
3 V4679 OTHERARROW
4 V8944 OTHER
5 V9460 HEADOTHER
Другой ищет эти клавиши и присваивает им более короткие значения:
original <- c("ARROW", "HEAD", "OTHER")
revised <- c("A", "H", "O")
lookup <- tibble(original, revised)
lookup
original revised
<chr> <chr>
1 ARROW A
2 HEAD H
3 OTHER O
Мой желаемый вывод - сделать df1
, фрейм данных, который заменяет text
комбинацией кодов revised
:
correctText <- c("A", "AH", "AO", "O", "HO")
df1 <- tibble(id, correctText)
df1
id correctText
<chr> <chr>
1 V3588 A
2 V8093 AH
3 V4679 AO
4 V8944 O
5 V9460 HO
Каков самый эффективный способ сделать это (только для базового R или dplyr) )? Сейчас я делаю это с for
l oop, но это слишком медленно для приложения Shiny, где я хочу его реализовать.