R - list.文件-排除文件夹



我想使用R的列表。Files函数用于查找文件夹及其子文件夹中的所有文本文件。但是,我想排除一个子文件夹中的所有文件,假设它包含未完成的工作,这些工作还没有为我使用其他文件的事情做好准备。结构如下:

- folder
 |- subfolder_1_good_stuff
 |- subfolder_2_good_stuff
 |- subfolder_3_good_stuff
 |- subfolder_4_unfinished_stuff

所以"folder"就是我的工作目录。

我现在使用:

list.files(path=".", pattern=".txt", recursive=TRUE)

但是我应该在"path"表达式中添加什么来排除包含未完成内容的文件夹?这个文件夹名不会出现在任何文件名中,如果这有什么区别的话。

使用regex - grepl排除:

# find all ".txt" files
myfiles <- list.files(path = ".", pattern = ".txt",
                      full.names = TRUE, recursive = TRUE)
# exclude unfinished stuff
myfilesfinished <- myfiles[ !grepl("unfinished_stuff", myfiles) ]

基于@zx8754的答案,仅使用%>%tidyverse方法:

library(tidyverse)
list.files(path=".", pattern=".txt", full.names = TRUE, recursive=TRUE) %>%
   stringr::str_subset(., "unfinished_stuff", negate = TRUE)

最新更新