根据部分名称读取R中的文本文件列表

时间:2017-04-07 14:55:09

标签: r regex list file directory

我使用以下行读取一个文本文件。但是,我需要包括阅读文本文件列表,但不是全部。我怎样才能在R中实现这一目标?

我在C:/ data路径中有多个文件夹。即。 1998_Data,1999_Data ....等等,每个文件夹都有文本文件01.txt ... 49.txt。

提前致谢。

startingDir<-"C:/Data"
files <- list.files(path = startingDir,pattern = "24.txt",recursive=T,full.names=T)

我在下面添加了一行,但它没有读取列表中的所有3个文件。 有什么建议吗?

my_files <- c("24.txt","01.txt","10.txt")
files <- list.files(path = startingDir,pattern = my_files,recursive=T,full.names=T)

1 个答案:

答案 0 :(得分:2)

那是因为pattern需要正则表达式:

thepattern <- "24\\.txt|01\\.txt|10\\.txt"
files <- list.files(path = startingDir,
                    pattern = thepattern,
                    recursive=TRUE,
                    full.names=TRUE)

请记住,你必须逃避点,因为它被解释为&#34;任何东西&#34;。

如果要自动执行此操作,可以执行以下操作:

my_files <- c("24.txt","01.txt","10.txt")
my_files <- gsub(".","\\.",my_files, fixed = TRUE)
my_pattern <- paste(my_files, collapse = "|")

fixed = TRUE中需要gsub才能避免将该点读作&#34;任何内容&#34;。另请参阅?regex