在 R 中替换标点符号“。”在一个字符串中

In R replace punctuation "." within a string

我查看了网络,发现这个网页 In R, replace text within a string 可以替换字符串中的文本。

我试过同样的方法来替换标点符号“.”换成另一个标点符号“-”,但没有用。

 group <- c("12357.", "12575.", "197.18", ".18947")
 gsub(".", "-", group)

给出此输出

 [1] "------" "------" "------" "------"

而不是

 [1] "12357-" "12575-" "197-18" "-18947"

是否有其他方法可以做到这一点?

“。”在正则表达式语言中表示 "any character"。要捕获实际点,需要对其进行转义,所以:

gsub("\.", "-", group)
#[1] "12357-" "12575-" "197-18" "-18947"

正如@akrun在评论中提到的,如果你愿意,你也可以把它括在括号之间,这样你就不需要转义了:

gsub('[.]', '-', group)
[1] "12357-" "12575-" "197-18" "-18947"