我希望使用中的函数根据部分匹配替换数据中的整个字符串条目stringr
包裹。
我尝试过的唯一方法是使用替换精确匹配str_replace_all()
但当有数十种变化需要纠正时,这就变得乏味且难以处理。我正在寻找基于部分匹配的替换。在下面的代表中,我通过直接指定替换了“西班牙人”和“哥伦比亚人”的变体。但是,我很乐意根据单词中存在“Spa”或“Col”的条件来执行这些替换。
library(tidyverse)
library(stringr)
data <- c(
"Spanish",
"SPANIARD",
"Spainiard",
"Colombian",
"Columbian",
"Ecuador",
"Equador",
"Ecuadorian",
"VENEZUELAN"
)
str_replace_all(data,
c(
"Spanish" = "Spaniard",
"SPANIARD" = "Spaniard",
"Spainiard" = "Spaniard",
"Columbian" = "Colombian"
))
#> [1] "Spaniard" "Spaniard" "Spaniard" "Colombian" "Colombian"
#> [6] "Ecuador" "Equador" "Ecuadorian" "VENEZUELAN"
Created on 2019-05-21 by the reprex package https://reprex.tidyverse.org (v0.2.1)
So str_replace_all()
正如所宣传的那样,但我正在寻找一种方法来简化 tidyverse 中的此过程。任何帮助深表感谢。