使用 R 脚本提取字符串 str_extract

String extract str_extract with R script

我有以下结构的文件:xxx_xxx_xxx_xxx_class0.pngxxx_xxx_xxx_xxx_class1.png。我只想 select class0 或 class1 图片。

我做到了:

 ## List images in path
images_names <- list.files("/img/train",pattern="\.png$",recursive = TRUE)
if(labelsExist){
    ## Select only class0 or class1 images
    classLb <- str_extract(images_names, "^(class0|class1)")
    # Set class0 == 0 and class1 == 1
    key <- c("class0" = 0, "class1" = 1)
    y <- key[classLb]
  }

当我执行 head(classLb) 时,我只有 NA 输出。有什么建议吗?

使用 sub 和正则表达式模式 .*([a-z]+).png。这声称要删除所有内容,直到 _ 后跟一个词然后 .png

sub('.*_([a-z]+).png', '\1', image_names)