在下面的例子中,我定义了一个模式来查找路径中包含Data并以.dta结尾的文件。
如果我使用 dir
命令没有模式,根据grepl,我得到的文件符合模式。
mypattern <- '.*/Data/.*\\.dta'
files <- dir('c:/Temp/Test',recursive=T)
files
#> [1] "dir1/Data/test2.dta" "dir2/Data/test.dta"
grepl(pattern = mypattern, files)
#> [1] TRUE TRUE
为什么 dir
与相同的模式返回什么?
dir('c:/Temp/Test',pattern = mypattern, recursive=T)
#> character(0)
谢谢您的帮助。
EDIT : SessionInfo
R version 4.0.0 (2020-04-24)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 10586)
Matrix products: default
Random number generation:
RNG: Mersenne-Twister
Normal: Inversion
Sample: Rounding
locale:
[1] LC_COLLATE=French_France.1252 LC_CTYPE=French_France.1252 LC_MONETARY=French_France.1252
[4] LC_NUMERIC=C LC_TIME=French_France.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
当你运行 dir(pattern=*, recursive=TRUE)
జజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజ pattern
单独应用于文件 姓名 (不是路径)。试试
files <- dir(recursive=TRUE)
grep(pattern=pattern, files, values=TRUE)