2012-07-04 27 views
8

相关问题here删除字符串中的两个字符

所以我有一个货币值包含美元符号和逗号的字符向量。但是,我想尝试在同一步骤中删除逗号和美元符号。

这消除了美元符号=

d = c("$0.00", "$10,598.90", "$13,082.47") 
gsub('\\$', '', d) 

这将删除逗号=

library(stringr) 
str_replace_all(c("10,0","tat,y"), fixed(c(","), "") 

我想知道如果我能在一个步骤中删除这两个字符。

我意识到我可以将gsub结果保存到一个新变量中,然后重新应用该变量(或其他函数)。但我想我正在考虑一个步骤来做到这一点。

+2

我不是正则表达式专家,但也许'gsub('\\ $ |,','',d)'? – joran

回答

12

由于在评论回答不好:

gsub('\\$|,', '', d) 

取代或者$或(|,一个空字符串。

+0

什么是双斜杠?@joran –

+1

@WhiteBig'$'是正则表达式中的一个特殊字符,因此很容易被转义。你可以通过'?regex'来阅读它。 – joran

+0

好吧,在我看来,R使用双// //逃脱。 –

3

看看?regexp额外的特殊的正则表达式的符号:

> gsub('[[:punct:]]', '', d) 
[1] "000"  "1059890" "1308247" 
+0

我认为这样会去掉小数点,这似乎不是OP想要的。上面的@ joran的答案似乎完全没有过度的影响。 – thelatemail

+0

@thelatemail你是对的!有龙舌兰酒时,我不应该回答问题!提供的答案是好得多。 – Justin