根据矢量过滤文件列表(导入特定的png)

时间:2017-10-05 11:16:16

标签: r

所以我有一个字符列表,其中包含我要导入的png的名称。它的形式如下:

names =  c("791365", "731823CK", "791652", "74164", "194817MKZ", "EK791073")

名称的大小和设置都不同。这些是我要加载的png的名称。在文件夹中我加载了1000个png,但我只想加载那些在我的名字向量中有名字的文件夹。 我已经加载了所有PNG的路径,但是要过滤以便只加载载体中的名称。

imgs <- list.files(path =".../Desktop/PNGs", pattern = ".png", all.files = TRUE, full.names = TRUE)

我认为这样做的方式可能很糟糕,但我不确定。 这样做有一种聪明的方法吗?

2 个答案:

答案 0 :(得分:1)

此命令从imgs中提取文件名中包含names字符串的文件。

首先我们使用basename删除文件路径(我们不希望grep)。接下来我们摆脱.png扩展。然后我们在修改后的文件名中搜索names并提取原始imgs字符串。

imgs[grep(paste0("^", names, ".png$", collapse="|"), basename(imgs))]

答案 1 :(得分:1)

您可以使用Filter()功能。

Filter(function(x) grepl(x, imgs), names)