list.files(pattern = paste(...))出现问题,文件名包括点和数字

时间:2019-03-27 12:56:30

标签: r regex

我正在尝试使用list.files()函数读取几个.RData文件的名称。 文件名看起来像这样:“ HadCM3.temp236.run.1.Block.801.950.R2.map.RData”或“ HadCM3.temp236.run.1.Block.1151.1300.R2.map.RData”。因为我想对文件名向量进行数字排序,所以我也使用了stringr包中的str_sort()函数。代码看起来像这样:

hadcm3.variable <- "temp236"
infile.vect <- str_sort(list.files(pattern = paste("hadcm3.", hadcm3.variable, 
".run.1.block.*.R2.map.RData", sep = ""), ignore.case = TRUE), numeric = TRUE)

这部分代码包含在一个更大的脚本中。有趣的是,当我运行整个脚本(RStudio版本1.1.456,R版本3.5.1)时,提到的命令不起作用,并且infile.vect变量包含“ character(0)”。但是,当我仅突出显示并运行提到的命令时,它会提供所需的结果,如下所示:

> infile.vect
[1] "HadCM3.temp236.run.1.Block.801.950.R2.map.RData"
[2] "HadCM3.temp236.run.1.Block.811.960.R2.map.RData"
...
[106] "HadCM3.temp236.run.1.Block.1851.2000.R2.map.RData"

此外,我非常有信心在整个脚本运行时也会执行上述命令,因为之前和之后的命令也会执行。工作目录也应该正确。 我怀疑这里的正则表达式有问题(文件名中的点和多个数字),但到目前为止无法解决。与脚本的其余部分一起运行时,如何使命令也起作用? 任何帮助将不胜感激。

0 个答案:

没有答案