我一直在使用gsub("toreplace","replacement", myvector)
清除R中的数据。虽然这适用于逗号等,但删除"$"
无效。因此,如果我gsub("$","",myvector)
,所有美元符号仍然存在。
我认为这是因为$
是R中的一个特殊字符。我试图转义它"\$"
但产生相同的结果(没有效果)。我无法在R中找到有关转义特殊字符的资源。
显然我应该在预处理中这样做。但我想知道是否有人知道如何a)逃避R中的特殊字符b)直接摆脱R中的讨厌$
。对于科学。
答案 0 :(得分:27)
你必须逃避它两次,首先是R,第二次是正则表达式。
gsub('\\$', '', c("a$a", "bb$"))
[1] "aa" "bb"
有关引用和转义的详细信息,请参阅?Quotes
。
答案 1 :(得分:18)
使用fixed = TRUE
:
gsub('$', '', c("a$a", "bb$"), fixed = TRUE)
然后您不必担心任何特殊字符。在stringr
中,实现方式略有不同:
library(stringr)
str_replace_all(c("$100","ta$ty"), fixed("$"), "")
感谢DiggyF和James的例子!
答案 2 :(得分:12)
转义字符有时会很痛苦,但只需将其放在方括号中(使其成为字符类)就可以解决这个问题:
> gsub("[$]","",c("$100","ta$ty"))
[1] "100" "taty"