У меня есть таблица, в которой содержится список слов, которые я хотел бы выделить, и текст, в котором я хотел бы выделить его:
df <- data_frame(
tags = list(list("sphinx", "judge", "vow"), list("jackdaws", "sphinx", "love"), list()),
text = list("Sphinx of black quartz, judge my vow", "Jackdaws love my big sphinx of quartz",
"Carved symbols in a mountain hollow on the bank of an inlet irritated an eccentric person.")
) %>%
mutate(text = as.character(text))
Я думал о том, чтобы сделать что-то вроде
gsub(df$tags[1][[1]][1], paste0('<span style="background-color: #FFFF00">', df$tags[1][[1]][1], '</span>'), df$text[1], ignore.case = TRUE)
Однако я изо всех сил пытаюсь выяснить, как заменить несколько вещей в одном предложении, если я, например, сделаю цикл, он перезапишется сам, и я заменю только последнее слово в списке.
Кроме того, я не совсем уверен, как заставить его работать внутри фрейма данных.
Ожидаемый результат будет примерно таким:
df_output <- data_frame(
tags = list(list("sphinx", "judge", "vow"), list("jackdaws", "sphinx", "love"), list()),
text = list("<span style="background-color: '#FFFF00'">Sphinx</span> of black quartz, <span style="background-color: '#FFFF00'">judge</span> my <span style="background-color: '#FFFF00'">vow<span>", "<span style="background-color: '#FFFF00'">Jackdaws</span> <span style="background-color: '#FFFF00'">love</span> my big <span style="background-color: '#FFFF00'">sphinx</span> of quartz",
"Carved symbols in a mountain hollow on the bank of an inlet irritated an eccentric person.")
) %>%
mutate(text = as.character(text))