r - dplyr 过滤列是否以列表中的字符串之一开头

标签 r filter dplyr

我们的目标:使用 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/

相关文章:

r - 根据 78*2 其他变量 dplyr 的列输入计算新的 (78) 个变量

r - 检查字符串是否包含向量中的所有元素? (R,数据帧,dplyr)

r - 从网上下载多个文件时如何跳过丢失的文件?

java - 在 r 或其他软件中查找草图图像的坐标(例如扫描为照片格式)

r - 在 R 中的两个数据帧之间更改值

html - 使用 orderBy 过滤器 angularjs 删除不正确的行

r - 使用分组计算过去和 future 特定事件的发生次数

python - Django,查询集过滤器ManyToManyField

javascript - 获取唯一值和重复值

r - 如何使用 broom 和 dplyr 适应多列分布