搜索并替换一个角色

时间:2012-10-04 18:38:41

标签: r

我有一个像这样的字符串

x<-c("This is a test (120)")

我需要替换测试之间的空白区域(以便文本将像这样

x<-c("This is a test(120)") 

我试过这个

s<-gsub("\t\v\(", "", x) 

不工作,任何意见都会受到赞赏。

3 个答案:

答案 0 :(得分:3)

使用前瞻:

gsub("\\s+(?=\\()", "", x, perl=TRUE) 
[1] "This is a test(120)"

答案取决于您需要的更多规格。要删除开口括号前面的所有空格吗?还是只有一个?或者只在包含数字的括号前面?

答案 1 :(得分:2)

一种简单的方法是使用fixed = TRUE,如:

gsub(" (", "(", x, fixed = TRUE)

或:

gsub(" \\(", "\\(", x)

答案 2 :(得分:2)

你必须在R中“双重逃避”事情,一个用于R,一个用于正则表达式:

s <- gsub('\\s\\(', '(', x)

也就是说,根据您的具体用例,您可能希望这更加强大:

s <- gsub('(.+) \\((.+)\\)', '\\1(\\2)', x)