Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何grep字符串数据中的两个单词?_R - Fatal编程技术网

如何grep字符串数据中的两个单词?

如何grep字符串数据中的两个单词?,r,R,所以我有一个数据帧,其中一列是character类型,由字符串组成。我想找到那些“foo”和“bar”同时出现的行,但是bar也可以出现在foo之前。基本上类似于正则表达式的AND运算符。我该怎么做?你可以试试 rowIndx <- grepl('foo', df$yourcol) & grepl('bar', df$yourcol) rowIndx您可以试试 rowIndx <- grepl('foo', df$yourcol) & grepl('bar',

所以我有一个数据帧,其中一列是character类型,由字符串组成。我想找到那些“foo”和“bar”同时出现的行,但是bar也可以出现在foo之前。基本上类似于正则表达式的AND运算符。我该怎么做?你可以试试

 rowIndx <- grepl('foo', df$yourcol) & grepl('bar', df$yourcol)
rowIndx您可以试试

 rowIndx <- grepl('foo', df$yourcol) & grepl('bar', df$yourcol)

rowIndx正则表达式不擅长逻辑运算。但是,您的特定情况可以通过以下表达式实现:

(foo.*bar)|(bar.*foo)

然而,这是一个非常低效的正则表达式,我强烈建议不要使用它。实际上,您可以使用akrun在注释中给出的解决方案:
grep
分别对它们进行处理,并与结果相交(或者对结果执行逻辑
grepl
&
处理,这在语义上是可交换的)。

正则表达式不擅长逻辑运算。但是,您的特定情况可以通过以下表达式实现:

(foo.*bar)|(bar.*foo)

然而,这是一个非常低效的正则表达式,我强烈建议不要使用它。在实践中,您可以使用akrun在注释中的解决方案:
grep
分别对它们进行处理,并与结果相交(或者对结果进行逻辑
grepl
&
处理,这在语义上是可交换的)。

通常不需要
:结果可能会被用于索引表。是的,行了。Thanks@KonradRudolph我认为OP需要行索引
,而
通常是不必要的:结果可能会被用来索引一个表。是的,这样就可以了。Thanks@KonradRudolph我以为OP想要行索引