0

我有一个这样的字符串

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

我需要替换 test 和 ( 之间的空格,这样文本就会像这样

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

我试过这个

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

不工作,任何输入将不胜感激。

4

3 回答 3

3

使用前瞻:

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

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

于 2012-10-04T18:46:37.697 回答
2

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

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

或者:

gsub(" \\(", "\\(", x)
于 2012-10-04T18:41:27.827 回答
2

您必须在 R 中“双重转义”。一个用于 R,一个用于正则表达式:

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

也就是说,根据您的具体用例,您可能希望它更健壮:

s <- gsub('(.+) \\((.+)\\)', '\\1(\\2)', x)
于 2012-10-04T18:42:58.340 回答