R - 在 grep 中暗示 x 对象

标签 r

我定期在索引中使用 grep 来过滤字符向量。为此,我通常在索引中重复索引对象的名称。

paths <- c("Resources/ctrl1.txt", "Resources/ctrl2.txt", 
           "Resources/trt1.txt", "Resources/trt2.txt")

paths.ctrl <- paths[grep("ctrl", paths)]

我想知道是否有一种方法可以暗示x(在其中寻找模式的对象),所以我不需要再次明确命名它。当对象尚未分配并且过滤已经在分配期间发生时,这将特别方便。

而不是:

dir <- "Resources/"
paths.ctrl <- paste0(dir, list.files(dir, recursive=T)[grep("ctrl", list.files(dir, recursive=T)))

我想要这样的东西:

paths.ctrl <- paste0(dir, list.files(dir, recursive=T)[grep("ctrl", x)]

我知道我可以在 list.files 的情况下使用模式参数,但我在各种上下文中都遇到了这个问题,并且想知道是否有通用的解决方案。

最佳答案

也许您会喜欢 value = TRUE 选项,如

paths.ctrl <- paste0(dir, grep("ctrl", list.files(dir, recursive = TRUE), value = TRUE))

例如,

c("AA", "BB", "BA")[grep("B", c("AA", "BB", "BA"))]
# [1] "BB" "BA"

grep("B", c("AA", "BB", "BA"), value = TRUE) # no repetitions
# [1] "BB" "BA"

关于R - 在 grep 中暗示 x 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50391471/

相关文章:

r - 确定时间间隔是否与多个患者 ID 重叠,在 r 中

r - 在 R 中结合 grid_arrange_shared_legend() 和facet_wrap_labeller()

r - 在 R 中编码查询字符串

r - 在 R 中的循环中构建列表 - 获取正确的项目名称

根据条件删除熔化数据

r - 重复的行意味着原始变量

在 R 中重建数据

r - R 中 T 统计量的单边假设检验?

R:仅更改特定区域的绘图背景颜色(基于 x 值)

r - 根据列值扩展数据框