grep未在R中返回预期结果
我试图从R中的data.frame中获取字段名列表,其中包含“mean()” 但是,例如,如果我运行:grep未在R中返回预期结果,r,regex,R,Regex,我试图从R中的data.frame中获取字段名列表,其中包含“mean()” 但是,例如,如果我运行: grep("mean()", "fld_meanFreq()") 当我期望0时,它返回一个答案,即1 当我在字段名列表上执行类似操作时,我得到的字段名同时包含“mean()”和“meanFreq()” 请问如何修理?我在这里的搜索中没有看到任何与此相关的内容。grep假设第一个参数是正则表达式,如果您不提供fixed=TRUE选项。在您的示例中,mean()中的括号表示子表达式(本例中为空)
grep("mean()", "fld_meanFreq()")
当我期望0时,它返回一个答案,即1
当我在字段名列表上执行类似操作时,我得到的字段名同时包含“mean()”和“meanFreq()”
请问如何修理?我在这里的搜索中没有看到任何与此相关的内容。
grep
假设第一个参数是正则表达式,如果您不提供fixed=TRUE
选项。在您的示例中,mean()
中的括号表示子表达式(本例中为空),因此您的示例相当于
grep("mean", "fld_meanFreq()")
相反,请尝试:
grep("mean()", "fld_meanFreq()", fixed=TRUE)
有关正则表达式的详细信息,请阅读关于
regex
grep
的R帮助,如果不提供fixed=TRUE
选项,则假定第一个参数是正则表达式。在您的示例中,mean()
中的括号表示子表达式(本例中为空),因此您的示例相当于
grep("mean", "fld_meanFreq()")
相反,请尝试:
grep("mean()", "fld_meanFreq()", fixed=TRUE)
有关正则表达式的更多信息,请阅读
regex
上的R帮助。如果要逐字匹配,则需要将括号转义。类似于grep(“mean\\(\\),“fld\u meanFreq()”)
的东西应该可以工作。grep
应该可以找到模式,并使用regex
。请参见?regex
,以了解该事项。如果要精确匹配,必须添加有效的fixed=TRUE
参数:grep(“mean()”,“fld\u meanFreq()”,fixed=TRUE)
。非常感谢。这两个都奏效了。我把事情搞砸了,只是在我发帖前试图转义时才放了一个\号。如果你想逐字匹配的话,你需要转义括号。类似于grep(“mean\\(\\),“fld\u meanFreq()”)
的东西应该可以工作。grep
应该可以找到模式,并使用regex
。请参见?regex
,以了解该事项。如果要精确匹配,必须添加有效的fixed=TRUE
参数:grep(“mean()”,“fld\u meanFreq()”,fixed=TRUE)
。非常感谢。这两个都奏效了。我把事情搞砸了,在我发帖之前,我只是在试图逃避的时候放了一张单张。