gpt4 book ai didi

r - 使用 str_detect 过滤多列

转载 作者:行者123 更新时间:2023-12-01 15:01:00 25 4
gpt4 key购买 nike

我正在使用功能 str_detect从 tidyverse 过滤掉与列表中任何字符串开头匹配的数据帧的行。目前,正在使用 |在我的 filter 中的每一列之间过滤时的语句陈述。有什么方法可以利用str_detect跨多列而不使用 or 语句?我目前在下面使用的代码有效,但无法扩展。


Dataframe <- data.frame("names" = c('John','Jill','Joe','Mark'), "Jobs" = c('Mailman','Jockey','Jobhunter',"Nojob"))

Filter_list <- c('Jo')

Dataframe %>% filter(str_detect(names, paste0("^(", paste(Filter_list, collapse = "|"), ")")) |
str_detect(Jobs, paste0("^(", paste(Filter_list, collapse = "|"), ")"))

names Jobs
1 John Mailman
2 Jill Jockey
3 Joe Jobhunter)

最佳答案

您可以使用 filter_at :

Dataframe %>% filter_at(.vars = vars(names, Jobs),
.vars_predicate = any_vars(str_detect(. , paste0("^(", paste(Filter_list, collapse = "|"), ")"))))
如果要将过滤器应用于所有变量,则可以使用 filter_all

关于r - 使用 str_detect 过滤多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55478879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com