使用多个模式时找出匹配的模式

李维

我正在寻找文件名列表中匹配的模式。我可以找出是否找到了匹配项,但找不到匹配的模式。

  local_pattern <- data.frame(
    condition = c("umhfl","dmhfl", "umhfr", "dmhfr", "shfr", "vshfr", "vshfl"),
    filename = c("*Upward motion*HF*Left*.csv", "*Downward motion*HF*Left*.csv", "*UHFR*.csv", "*DHFR*.csv", "*SHFR*.csv", "*VSHFR*.csv", "*VSHFL*.csv")
  )

## matching a sample file name
pattern_matched <- grep(paste(glob2rx(local_pattern[,2]), collapse = "|"), "./csv files/DHFR 2019-04-09 04.59 PM_001.csv", value = F)

我想看到的是匹配的模式,而不是找到匹配项的TRUE。

朱利叶斯·维诺拉(Julius Vainora)

我们可能会使用str_detectstringr被矢量化了stringpattern

library(stringr)
str_detect("./csv files/DHFR 2019-04-09 04.59 PM_001.csv",
           glob2rx(local_pattern[, 2]))
# [1] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE

以便

local_pattern[str_detect("./csv files/DHFR 2019-04-09 04.59 PM_001.csv", glob2rx(local_pattern[,2])), 2]
# [1] *DHFR*.csv

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章