Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 根据矢量筛选文件列表(导入特定png)_R - Fatal编程技术网

R 根据矢量筛选文件列表(导入特定png)

R 根据矢量筛选文件列表(导入特定png),r,R,所以我有一个字符列表,其中包含我想要导入的png的名称。表格如下: names = c("791365", "731823CK", "791652", "74164", "194817MKZ", "EK791073") 这些名称在大小和设置上都不同。这些是我要加载的png的名称。在我正在加载的文件夹中,有1000个png,但我只想加载那些名称在我的名称向量中的。 我已经加载了所有PNG的路径,但是strugge要过滤,所以只加载了向量中的名称 imgs <- list.files(pa

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

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)作为输出。@诽谤者乐于助人:-)