在R中,如何用另一个字符串替换包含某个模式的字符串?

Ala*_*lan 11 string expression r gsub

我正在开展一项涉及清理大学专业数据清单的项目.我发现有很多拼写错误,所以我希望用这个函数gsub()用正确的拼写替换拼错拼写的函数.例如,假设'biolgy'在名为Major的专业列表中拼写错误.如何让R检测拼写错误并用正确的拼写替换它?我试过gsub('biol', 'Biology', Major)但只能替换'biolgy'中的前四个字母.如果我这样做gsub('biolgy', 'Biology', Major),它仅适用于那种情况,但这并不能检测出"生物学"的其他形式的拼写错误.

谢谢!

aL3*_*3xa 13

你应该定义一些漂亮的正则表达式,或者agrep从base包中使用.stringr包是另一个选择,我知道人们使用它,但我是正则表达式的忠实粉丝,所以对我来说这是禁忌.

无论如何,agrep应该做的诀窍:

agrep("biol", "biology")
[1] 1
agrep("biolgy", "biology")
[1] 1
Run Code Online (Sandbox Code Playgroud)

编辑:

你也应该使用ignore.case = TRUE,但要做好"手工"记账的准备......