Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 列出具有多个条件的文件第2部分_R_Search_File Listing - Fatal编程技术网

R 列出具有多个条件的文件第2部分

R 列出具有多个条件的文件第2部分,r,search,file-listing,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,

我有以下光栅,希望在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$")

S2对于其他用户,根据@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$

希望它是清楚的

尝试
B((0[2348]|)(0[567])|(1[12])|(8A))|(20m))。jp2$
再次感谢,仍然检查括号顺序,但它工作正常!如果你把它作为一个答案,我会标记:)你可以在理解了答案后再写一个答案sequence@docendodiscimus,是否可以定义一个变量?例如,
varyes当然,这是可能的。您不应该使用空格。我想问题是,如果您在模式中为可读性指定一些空格,您正在更改实际模式,但它们可能不起作用