在dplyr()中使用str_detect跨两列进行匹配

时间:2018-11-14 09:27:16

标签: r regex dplyr

我试图在mydata的两列中进行匹配,以创建一个名为match的新列。我首先要删除Word1Word2中没有“ none”的所有行:

 Token     Word1     Word2
 1         cat       cat
 2         dog       cat
 3         hamster   none
 4         sheep     sheep
 5         none      hamster

我在dplyr()中使用了以下代码:

 mydata %>% filter(Word1 != "none" | Word2 != "none") %>%
   mutate(match = str_detect(Word1 , Word2)) %>%
   filter(match == FALSE)

我收到以下错误:

 Error in mutate_impl(.data, dots) : 
   Evaluation error: Incorrectly nested parentheses in regexp pattern. 
 (U_REGEX_MISMATCHED_PAREN).

当我运行mydata %>% filter(Word1 != "none" | Word2 != "none")时,该函数只能正常工作,因此我看不到括号中的错误。但是,也许我在这里遗漏了一些明显的东西! (我之前已经成功使用str_detect多次了!)

我还发现this answer是关于使用fixed(x)的,但是当我使用mutate(match = str_detect(Word1 , Word2), fixed(x))将其应用于我的代码时,我在输出中得到了相同的错误。

0 个答案:

没有答案