R 根据矢量筛选文件列表(导入特定png)
所以我有一个字符列表,其中包含我想要导入的png的名称。表格如下:R 根据矢量筛选文件列表(导入特定png),r,R,所以我有一个字符列表,其中包含我想要导入的png的名称。表格如下: names = c("791365", "731823CK", "791652", "74164", "194817MKZ", "EK791073") 这些名称在大小和设置上都不同。这些是我要加载的png的名称。在我正在加载的文件夹中,有1000个png,但我只想加载那些名称在我的名称向量中的。 我已经加载了所有PNG的路径,但是strugge要过滤,所以只加载了向量中的名称 imgs <- list.files(pa
names = c("791365", "731823CK", "791652", "74164", "194817MKZ", "EK791073")
这些名称在大小和设置上都不同。这些是我要加载的png的名称。在我正在加载的文件夹中,有1000个png,但我只想加载那些名称在我的名称向量中的。
我已经加载了所有PNG的路径,但是strugge要过滤,所以只加载了向量中的名称
imgs <- list.files(path =".../Desktop/PNGs", pattern = ".png", all.files = TRUE, full.names = TRUE)
imgs此命令从imgs
中提取文件,这些文件的文件名中包含名称中的字符串
首先,我们使用basename
删除文件路径(我们不想grep
那个)。接下来我们去掉.png
扩展名。然后,我们在修改后的文件名中搜索名称
,并提取原始imgs
字符串
imgs[grep(paste0("^", names, ".png$", collapse="|"), basename(imgs))]
您可以使用Filter()
函数
Filter(function(x) grepl(x, imgs), names)
是的,或者至少是名字的例子。具体来说,我把它命名为一个字符[1:459],每个条目都像“791365”。希望这说明如果x
包含文件路径(即x
中的“791652”
在路径中:/home/user/791652/files.png
)这将不起作用是的,但看起来他从中筛选的文件都来自同一个repo,所以这不应该是一个问题。这几乎像我希望的那样工作。但在我的例子中,名称必须完全匹配,即从“791365”开始,我只想要“791365.png”,而不是现在看起来的“791365_V2.png”。这样做会让我以字符(0)作为输出。@诽谤者乐于助人:-)