如何用R中的指定字符替换空格和字符?

时间:2014-02-01 22:32:15

标签: r gsub

我有一个类似

的字符串
adgroupname <-"life sciences | medical device" 

我要替换

" | " with "|" 

,输出应该像

life sciences|medical device 

我正在使用

adgroupname <- gsub(pattern=" | ",replacement="|",x=adgroupname)

但输出显示为

life|sciences|||medical|device

如何使用R? R.any的新人帮助表示赞赏。

2 个答案:

答案 0 :(得分:3)

|符号是正则表达式的特殊字符,必须进行转义。此符号表示这两种可能性。在这里,您要说的是用|替换空格或空格。也就是说,用|代替每个空格,这就是它所做的。

我更喜欢将一个字符类用于转义,这也适用:

gsub(pattern=" [|] ",replacement="|",x=adgroupname)
## [1] "life sciences|medical device"

结果相同,但您需要更少的反斜杠。

这不是这种情况,但是当你必须通过shell将正则表达式传递给另一个进程时,计算反斜杠会非常繁琐。

答案 1 :(得分:2)

您需要转义管道符号:

adgroupname<-gsub(" \\| ", "|", adgroupname)

结果:

> adgroupname <-"life sciences | medical device" 
> adgroupname
[1] "life sciences | medical device"
> adgroupname<-gsub(" \\| ", "|", adgroupname)
> adgroupname
[1] "life sciences|medical device"