Ответ 1
Вам нужно выполнить его дважды, сначала для R, второй для регулярного выражения.
gsub('\\$', '', c("a$a", "bb$"))
[1] "aa" "bb"
Подробнее о цитировании и экранировании см. ?Quotes
.
Я использовал gsub("toreplace","replacement", myvector)
для очистки данных в R. Хотя это работает для запятых и т.п., удаление "$"
не влияет. Поэтому, если я делаю gsub("$","",myvector)
, все знаки доллара остаются на месте.
Я думаю, это связано с тем, что $
является специальным символом в R. Я попытался убежать от него "\$"
, но это дает тот же результат (без эффекта). И я не мог найти ресурс по экранированию специальных символов в R.
Очевидно, я должен сделать это при предварительной обработке. Но мне было интересно, если кто-нибудь там знал, как либо:) избежать специальных символов в R b) избавиться от pesky $
в R напрямую. Для науки.
Вам нужно выполнить его дважды, сначала для R, второй для регулярного выражения.
gsub('\\$', '', c("a$a", "bb$"))
[1] "aa" "bb"
Подробнее о цитировании и экранировании см. ?Quotes
.
Используйте fixed = TRUE
:
gsub('$', '', c("a$a", "bb$"), fixed = TRUE)
Тогда вам не нужно беспокоиться о каких-либо специальных символах. В stringr
это выполняется несколько иначе:
library(stringr)
str_replace_all(c("$100","ta$ty"), fixed("$"), "")
Спасибо DiggyF и Джеймсу за примеры!
Экранирующие символы могут быть больными несколько раз, но просто положить его в квадратные скобки (сделать его классом символов) помогает с этим:
> gsub("[$]","",c("$100","ta$ty"))
[1] "100" "taty"