列出具有多个条件的文件part2

时间:2017-12-07 12:09:32

标签: r search file-listing

我有以下栅格,并希望在R中导入它们。我的文件现在被称为:

B02_10m.jp2
B03_10m.jp2
B04_10m.jp2
B08_10m.jp2

B05_20m.jp2
B06_20m.jp2
B07_20m.jp2
B8A_20m.jp2
B11_20m.jp2
B12_20m.jp2

它们位于不同的子文件夹中。这就是我使用recursive=TRUE

的方式

我尝试使用以下选项来组合条件,但它不起作用。

 S2 <- "my/path"
S2 <- list.files(S2, recursive = TRUE, full.names = TRUE, pattern =  "B0[2348]_10m.jp2$ | B(0[567]_20m)|(1[12]_20m)|(8A_20m).jp2$")

S2 <- "my/path"
S2 <- list.files(S2, recursive = TRUE, full.names = TRUE, pattern =  "B0[2348]_10m | B(0[567]_20m)|(1[12]_20m)|(8A_20m).jp2$")

1 个答案:

答案 0 :(得分:4)

对于其他用户并基于@docendo discimus answer,这里的想法是在列出文件时结合不同的条件,就像我的情况一样。我的条件是基于字母B之后的数字:

pattern="B( here we need to write the conditions).jp2$

首先,我们将设置条件导入文件B02_10m,B03_10m,B04_10m,B08_10m

patter="B(FIRST CONDITION OR SECOND CONDITION).jp2$
pattern="B((0[2348]_10m)|SECOND CONDITION).jp2$

其次,我们将导入文件B05_20m,B06_20m,B07_20m,B8A_20m,B11_20m,B12_20m。在这种情况下,我们必须结合几个子条件,因为模式从例如02变为11,12和8A

首先我们编写5,6和7的代码

pattern="B((0[2348]_10m)|((0[567])_20m)).jp2$

然后我们添加第11和第12频段的代码

pattern="B((0[2348]_10m)|((0[567])|(1[12])_20m)).jp2$

然后,8A的代码

pattern="B((0[2348]_10m)|(((0[567])|(1[12])|(8A))_20m)).jp2$

希望它清楚