如何从R中的数据/转义特殊字符中删除美元符号($)?

ara*_*eae 24 r escaping

我一直在使用gsub("toreplace","replacement", myvector)清除R中的数据.虽然这适用于逗号等,但删除"$"没有任何效果.所以,如果我做gsub("$","",myvector)所有美元符号仍然存在.

我认为这是因为$在R中是一个特殊的角色.我试图逃避它"\$"但产生相同的结果(没有效果).我无法在R中找到有关转义特殊字符的资源.

显然我应该在预处理中这样做.但我想知道是否有人在那里知道如何a)逃避R中的特殊字符b)$直接摆脱R中的讨厌.对于科学.

Sig*_*gyF 29

你必须逃避它两次,首先是R,第二次是正则表达式.

gsub('\\$', '', c("a$a", "bb$"))
[1] "aa" "bb"
Run Code Online (Sandbox Code Playgroud)

有关?Quotes引用和转义的详细信息,请参阅.


had*_*ley 19

用途fixed = TRUE:

gsub('$', '', c("a$a", "bb$"), fixed = TRUE)
Run Code Online (Sandbox Code Playgroud)

那你就不用担心任何特殊字符了.在stringr,实现方式略有不同:

library(stringr)
str_replace_all(c("$100","ta$ty"), fixed("$"), "")
Run Code Online (Sandbox Code Playgroud)

感谢DiggyF和James的例子!


Jam*_*mes 12

转义字符有时会很痛苦,但只需将其放在方括号中(使其成为字符类)有助于:

> gsub("[$]","",c("$100","ta$ty"))
[1] "100"  "taty"
Run Code Online (Sandbox Code Playgroud)