我正在寻找文件名列表中匹配的模式。我可以找出是否找到了匹配项,但找不到匹配的模式。
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。
我们可能会使用str_detect
从stringr
被矢量化了string
和pattern
:
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] 删除。
我来说两句