在 R 中用不同的替换替换多个模式

问题描述 投票:0回答:1

我的一只眼睛可能是瞎的,但我找不到“更聪明”的解决方案来解决我的问题。我想用存储在单独数据框中的描述替换表情符号。有没有更方便的替代方法?

我的可重现示例:

library("tidyverse")

emojis <- tibble(
  "descr" = c("grinning","rofl","smile"),
  "emoji" = c("😀","🤣","😄")
)

data <- tibble(
  content = c("Hi 😄", "😄🤣", "lol")
)

for (i in 1:nrow(emojis)) {
  pattern <- emojis[i,"emoji"] %>% pull()
  replacement <- emojis[i,"descr"] %>% pull()
  data <- data %>%
    mutate(content = str_replace_all(content,pattern,replacement))
}

r replace stringr
1个回答
0
投票

如果我们使用

str_replace_all
进行命名替换的能力,我们可以一步完成此操作:

stringr::str_replace_all(data$content, setNames(emojis$descr, emojis$emoji))
# [1] "Hi smile"  "smilerofl" "lol"      
© www.soinside.com 2019 - 2024. All rights reserved.