我一直在使用gsub("toreplace","replacement", myvector)
來清理R中的數據。雖然這適用於逗號等,但刪除"$"
不起作用。所以如果我做gsub("$","",myvector)
所有的美元符號仍然存在。
我認爲這是因爲$
是R中的一個特殊字符。我試圖轉義它"\$"
但產生相同的結果(沒有效果)。而且我找不到R中的特殊字符。
很顯然,我應該在預處理中執行此操作。但我想知道是否有人知道如何a)在R中逃避特殊字符b)直接在R中擺脫討厭的$
。對於科學。
我一直在使用gsub("toreplace","replacement", myvector)
來清理R中的數據。雖然這適用於逗號等,但刪除"$"
不起作用。所以如果我做gsub("$","",myvector)
所有的美元符號仍然存在。
我認爲這是因爲$
是R中的一個特殊字符。我試圖轉義它"\$"
但產生相同的結果(沒有效果)。而且我找不到R中的特殊字符。
很顯然,我應該在預處理中執行此操作。但我想知道是否有人知道如何a)在R中逃避特殊字符b)直接在R中擺脫討厭的$
。對於科學。
轉義字符可以是一個痛苦有時,但只是把它放在方括號(使它成爲一個字符類)有助於這一點:
> gsub("[$]","",c("$100","ta$ty"))
[1] "100" "taty"
你要逃避它兩次,第一次爲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。謝謝! – araneae