我想使用gsub来更正我的数据中的一些名称.我希望诸如"RJ"和"AJ"之类的名字在字母之间没有空格.
例如:
x <- "A. J. Burnett"
Run Code Online (Sandbox Code Playgroud)
我想使用gsub匹配他的名字的模式,然后删除空格:
gsub("[A-Z]\\.\\s[A-Z]\\.", "[A-Z]\\.[A-Z]\\.", x)
Run Code Online (Sandbox Code Playgroud)
但我得到:
[1] "[A-Z].[A-Z]. Burnett"
Run Code Online (Sandbox Code Playgroud)
显然,不是[AZ],而是我想要原始名称中的实际字母.我怎样才能做到这一点?
Sto*_*ica 14
在封闭的图案使用捕捉组(...),并参照摄像图案用\\1,\\2等.在这个例子中:
x <- "A. J. Burnett"
gsub("([A-Z])\\.\\s([A-Z])\\.", "\\1.\\2.", x)
[1] "A.J. Burnett"
Run Code Online (Sandbox Code Playgroud)
另请注意,在替换中您不需要转义.字符,因为它们没有特殊含义.