【发布时间】:2018-02-12 18:26:02
【问题描述】:
我有一个函数,biovars(prec,tmin,tmax),输入三个变量。 prec,tmin,tmax 是多频段GeoTiff。但是有几个 Tiff 存储在不同的目录中,需要在将它们传递给函数之前对其进行堆叠:
stack("/path1/to/file/prec1.tif")
stack("/path2/to/file/tmin1.tif")
stack("/path3/to/file/tmax1.tif")
如何循环遍历每个目录,堆叠第一个文件并将循环结果用作函数的输入:
biovars(prec1,tmin1,tmax1)
biovars(prec2,tmin2,tmax2)
...
biovars(precn,tminn,tmaxn)
有没有一种简单的方法可以做到这一点?我认为三个 for 循环是不可能的......
【问题讨论】:
-
这是一个有 12 个波段的 GeoTiff
-
根据您的数据,看起来您只需要一个循环,因为
prec、tmin和tmax都使用 1:n 的相同值。如果不是这种情况,请随时纠正我。但在这种情况下,for (i in 1:n) { biovars(get(paste0(prec, i)), get(paste0(tmin, i)), get(paste0(tmax, i))) } -
那是什么数据类型? CSV、TAB、XML?每个文件一列?
-
@Punintended:所以看起来似乎是合理的。我不知道这是可能的。我会试试这个。 @Parfait:数据类型为栅格(GeoTiff)
标签: r function loops directory