我们的目标:使用 R dplyr,如果 match_column 字段中的数据以 code_list <- c("123", "234", "456") 中的代码之一开头,则过滤该行。
以下内容适用于静态字符串(即,它返回 dataset::match_column 中以静态字符串“123”开头的所有行。)
dataset1 <-filter(dataset, str_detect(match_column,"^123"))
经过多次尝试,我们无法找出用code_list替换“^123”的语法。
任何帮助将不胜感激。
最佳答案
我们可以粘贴
带有collapse
的字符串来执行过滤器
来过滤数据集列('match_column')中具有以下内容的行: “code_list”中的任一元素
library(tidyverse)
pat <- paste0("^(", paste(code_list, collapse = "|"), ")")
dataset %>%
filter(str_detect(match_column, pat))
如果只是使用“code_list”中的元素之一
dataset %>%
filter(str_detect(match_column, paste0("^", code_list[1])))
关于r - dplyr 过滤列是否以列表中的字符串之一开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52848008/