所以我有一个字符列表,其中包含我要导入的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)
我认为这样做的方式可能很糟糕,但我不确定。 这样做有一种聪明的方法吗?
答案 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)