grep()能对向量中特定条件的元素进行查询,默认return为index。grep()语法与grep()大致相似,但默认return为logical。
默认情况下是匹配尽可能多的字符,是为贪婪匹配,比如sub("a. b","",c("aabab","eabbe")),默认匹配最长的a开头b结尾的字串,也就是整个字符串。如果要进行懒惰匹配,也就是匹配最短的字串,只需要在后面加个“?”,比如sub("a. ?b","",c("aabab","eabbe")),就会匹配最开始找到的最短的a开头b结尾的字串。
在日常数据分析的过程中,我们经常需要在一个字符串或者字符串向量中查找是否包含我们要找的东西,或者向量中那几个元素包含我们要查找的内容。这个时候我们会用到R中最常用的两个函数, grep 和 grepl。 其实grep这个函数也并非是R所特有的,在linux中模式匹配也用grep这个函数,前面我就给大家简单介绍过☞ Linux xargs grep zgrep命令 。
我们先来看看grep和grepl这两个函数的用法。
这两个函数最大的区别在于grep返回找到的位置,grepl返回是否包含要查找的内容。接下来我们结合具体的例子来讲解。
运行结果如下:
以上是一些简单的例子,前面我们给大家举过一个 grepl 实战的例子。
☞讨论学习R的grepl函数
参考资料:
☞ Linux xargs grep zgrep命令
☞讨论学习R的grepl函数
R中的grep和grepl函数