简体   繁体   English

全局替换许多模式以进行许多替换

[英]Globally substitute many patterns for many replacements

In R , we can use gsub to globally substitute one pattern by another pattern in a vector.R中,我们可以使用gsub将向量中的一种模式全局替换为另一种模式。 However, if I want to substitute many patterns for many pattern, how can I do this.但是,如果我想用许多模式替换许多模式,我该怎么做。 For ex:-例如:-

a <- c("AV. Reg", "AVENUE Reg", "Bld. Aze", "BOUlevard Aze", "Str. Fsd", "Strasse FSD", "R. Ger", "RUE Ger")

Now I want to substitute the following:-现在我想替换以下内容:-

pattern    replacement
AV.        Avenue
AVENUE     Avenue
Bld.       Boulevard
BOUlevard  Boulevard
Str.       Strasse
R.         Rue
RUE        Rue

Can I define pattern and replacement as two vectors and substitute pattern by replacement globally.我可以将patternreplacement定义为两个向量并通过全局替换来replacement pattern吗?

Thanks in advance.提前致谢。

a <- c("AV. Reg", "AVENUE Reg", "Bld. Aze", "BOUlevard Aze", "Str. Fsd", "Strasse FSD", "R. Ger", "RUE Ger")

pattern <- c("AV\\.","AVENUE","Bld\\.","BOUlevard", "Str\\.","R\\.","RUE")
replacement <- c("Avenue","Avenue","Boulevard","Boulevard","Strasse","Rue","Rue")

for(i in seq(pattern))
  a <- gsub(pattern[i], replacement[i], a)

Note the \ is to escape the "."注意 \ 是为了转义“.”。 special character ( you can check what happens if you remove them).特殊字符(您可以检查如果删除它们会发生什么)。 Also, I changed your BLD.另外,我改变了你的 BLD。 to Bld.到大厦。 cause I guess that what you meant因为我想这就是你的意思

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM