我有一个包含字符串的列的数据集,
例
"管理250,000美元的预算,利用Excel监控和比较运营费用与之前的预算,从而为公司节省10%的预算"
我想标记所有带有美元符号后跟数字的字符串.
我想这样编码
grep("$[^0-9]", cand_emp$description, ignore.case = TRUE, perl = FALSE, value = FALSE,
fixed = FALSE, useBytes = FALSE, invert = FALSE)
Run Code Online (Sandbox Code Playgroud)
看来,这不是正确的编码方式.
任何帮助高度赞赏
谢谢!PARTH
由于美元符号是一个特殊字符,你必须通过前面这样的反斜杠来逃避它:
\$
Run Code Online (Sandbox Code Playgroud)
您可以查看文档
基本构建块是与单个字符匹配的正则表达式.大多数字符,包括所有字母和数字,都是与自身匹配的正则表达式.具有特殊含义的任何元字符都可以通过在其前面加上反斜杠来引用.扩展正则表达式中的元字符是.\ | ()[{^ $*+ ?,但请注意这些是否具有特殊含义取决于上下文.
更新:正如Gregor在评论中指出的那样,你必须逃避R中的反斜杠,所以你必须使用:
\\$
Run Code Online (Sandbox Code Playgroud)
你可以有:
grep("\\$[^0-9]", cand_emp$description, ignore.case = TRUE, perl = FALSE, value = FALSE,
fixed = FALSE, useBytes = FALSE, invert = FALSE)
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您不喜欢使用两个反斜杠,则可以通过以下方式利用字符类[``]:
grep("[$][^0-9]", cand_emp$description, ignore.case = TRUE, perl = FALSE, value = FALSE,
fixed = FALSE, useBytes = FALSE, invert = FALSE)
Run Code Online (Sandbox Code Playgroud)
更新:我注意到你更新了你的问题,我想标记所有带有美元符号后跟数字的字符串.为此,您必须^从示例中删除,使用:
[$][0-9]+
Run Code Online (Sandbox Code Playgroud)