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

用户3408139

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

我在 C:/data 路径中有多个文件夹。IE。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)
乔里斯·梅斯

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

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

请记住,您必须对点进行转义,否则它会被解释为“任何东西”。

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

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以避免将点读作“任何东西”。也可以看看?regex

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章