【发布时间】:2021-11-10 02:03:15
【问题描述】:
我想在我的所有列中搜索正则表达式模式,如果有匹配项,则使用“匹配”创建一个新列,否则创建一个“不匹配”。
过滤时,我能够做到这一点
filter_all(any_vars(str_detect(., '(?i)string.*c5')))
但是当我尝试时
mutate(match = if_else(any_vars(str_detect(., '(?i)string.*c5')), "Match", "No Match"))
我得到一个
“条件必须是逻辑向量,而不是
any_vars对象”错误。
这是有道理的,但我还没有弄清楚如何调整函数来完成它。请注意,并非我的所有列都是字符串,但希望这不是问题。
我阅读了一些答案,但没有一个有效--c_across 和 rowsum 也无效(用于网站上的其他答案)。
【问题讨论】:
标签: r regex tidyverse stringr dplyr