Добавление символов к строкам во фрейме данных на основе имен строк

#r #string #dataframe

#r #строка #фрейм данных

Вопрос:

Допустим, у меня есть фрейм данных, который выглядит следующим образом:

     number  text

 1   3      hello
 2   3      this
 3   3      is
 4   3      a
 5   3      text
  

и у меня есть второй фрейм данных, который выглядит следующим образом:

     number  text

 1   3      hello
 5   3      text
  

и мой конечный результат должен выглядеть следующим образом:

     number  text

 1   3      <b>hello</b>
 2   3      this
 3   3      is
 4   3      a
 5   3      <b>text</b>
  

Каков наилучший способ достижения этого результата?

(первый столбец представляет имена строк)

Ответ №1:

Мы можем использовать объединение

 library(data.table)
setDT(df1)[df2, text := paste0("<b>", text, "</b>"), on = "text"]
df1
#     number         text
#1:      3 <b>hello</b>
#2:      3         this
#3:      3           is
#4:      3            a
#5:      3  <b>text</b>
  

Ответ №2:

Вы можете сделать это следующим образом:

 text <- c("hello", "this", "is", "a", "text")
bold <- c("hello", "text")
index <- text%in%bold
text[index] <- paste("<b>", text[index], "</b>", sep = "")