我一直在使用gsub("toreplace","replacement", myvector)
来清除r中的数据,而这适用于逗号等,删除"$"
没有效果。因此,如果我执行gsub("$","",myvector)
,所有的美元符号都保持不变。
我认为这是因为$
是r中的一个特殊字符。我试图转义它"$"
,但产生相同的结果(没有效果)。我找不到关于r中转义特殊字符的资源。
显然,我应该在预处理中这样做。但是我想知道是否有人知道如何a)转义R中的特殊字符b)直接在R中摆脱讨厌的$
。为科学。
必须转义两次,第一次是R,第二次是regex。
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和James的例子!
转义字符有时会很麻烦,但只需将其放在方括号中(使其成为字符类)就可以解决这个问题:
> gsub("[$]","",c("$100","ta$ty"))
[1] "100" "taty"
如果你在一组数据列中有$后跟数字(例如$400,000),有一种更简单的方法对我来说很有吸引力。数据%> %mutate_at (5:6, parse_number)其中5:6为数据列号。