Замените две точки в строке gsub

Я пытаюсь использовать следующий код для замены двух точек только для одного:

test<-"test..1"
gsub("\\..", ".", test, fixed=TRUE)

и получение:

[1] "test..1"

Я попробовал несколько комбинаций строк escape, включая скобки [] без успеха.
Что я делаю неправильно?

Ответы

Ответ 1

Если вы собираетесь использовать fixed = TRUE, используйте символ (не интерпретируемый) .:

> gsub("..", ".", test, fixed = TRUE)

В противном случае, в пределах регулярных выражений (fixed = FALSE), . имеет особое значение (любой символ), поэтому вы хотите префикс его с обратной косой чертой, обозначающей "символ точки":

> gsub("\\.\\.", ".", test)
> gsub("\\.{2}", ".", test)