удалить скобки из строки - PullRequest
       19

удалить скобки из строки

25 голосов
/ 26 февраля 2012

Я пытаюсь удалить скобки из строки в R и столкнулся со следующей ошибкой:

string <- "log(M)"
gsub("log", "", string) # Works just fine
gsub("log(", "", string) #breaks
# Error in gsub("log(", "", test) : 
#   invalid regular expression 'log(', reason 'Missing ')''

Ответы [ 2 ]

52 голосов
/ 26 февраля 2012

Избегайте скобок с двойной обратной косой чертой:

gsub("log\\(", "", string)

(Обязательно: http://xkcd.com/234/)

13 голосов
/ 26 февраля 2012

Ответ Бена дает вам хороший общепринятый способ сделать это.

В качестве альтернативы, в вашей ситуации вы можете использовать аргумент fixed=TRUE, например:

gsub("log(", "", string, fixed=TRUE)
# [1] "M)"

Это целесообразно, когда аргумент pattern для gsub() представляет собой строку символов, содержащуюбуквальная последовательность символов, которую вы ищете.Тогда это приятно, потому что позволяет вам набирать точный шаблон, который вы ищете, без экранирования и т. Д.

...