我使用以下行读取一个文本文件。但是,我需要包括阅读文本文件列表,但不是全部。我怎样才能在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)
答案 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