我想使用`stringr`包中的函数基于部分匹配来替换数据中的整个字符串。目前我尝试过使用`str_replace_all()`来替换完全匹配的字符串,但是当需要纠正许多变体时,这变得繁琐且难以处理。我希望能够基于部分匹配来进行替换。在下面的示例中,我通过直接指定来替换"Spaniard"和"Colombian"的变体。但是,我希望能够根据"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"
最初的回答:
str_replace_all()
的功能如其所述,但我正在寻找在tidyverse中优化此过程的方法。非常感谢您的任何帮助。
创建于2019-05-21,使用reprex包(v0.2.1)
stringdist
的文档开始,RecordLinkage
中也有几个距离度量方法。除此之外,我没有太多建议,只能推荐你查阅他们引用的论文或维基百科。很抱歉我帮不上更多忙,祝你好运! - undefined