R 从目录中的文件自动创建对象
我试图在一个R脚本中自动化数据摄取过程,该脚本从定期更新的目录中提取数据 总体框架遵循这一过程R 从目录中的文件自动创建对象,r,automation,r-raster,R,Automation,R Raster,我试图在一个R脚本中自动化数据摄取过程,该脚本从定期更新的目录中提取数据 总体框架遵循这一过程 library(sp) library(rgdal) library(raster) f1.t1.cir <- stack("../raster/field1/f1_cir_t1.tif") f1.t1.NDVI <- stack("../raster/field1/f1_ndvi_t1.tif") f1.t1.RGB <- stack("../raster/field1/f1_n
library(sp)
library(rgdal)
library(raster)
f1.t1.cir <- stack("../raster/field1/f1_cir_t1.tif")
f1.t1.NDVI <- stack("../raster/field1/f1_ndvi_t1.tif")
f1.t1.RGB <- stack("../raster/field1/f1_ndvi_t1.tif")
f1.dat <- c(f1.t1.cir, f1.t1.NDVI, f1.t1.RGB)
for (i in f1.dat){
plotRGB(i)
}
此时,我将在R工作空间中将所有tiff文件作为堆叠的多波段光栅对象
我得到以下错误
get(b[(其中(a==i))]中的错误:未找到对象“f1_t1_DSM.tif”
我不知道这是get()问题还是其他问题
供参考
> a
[1] "f1_t1_DSM.tif" "f1_t1_NDVI.tif"
> b
[1] "f1.t1.DSM.tif" "f1.t1.NDVI.tif"
我想,这么多都在起作用
有什么建议吗 @joran,很好的建议
f1.t1<-list()
for(i in list.files(path= "../raster/field1", pattern = "\\.tif$")){
f1.t1[[i]]<-stack((paste("../raster/field1/", i, sep="")))
}
f1.t1忘记assign
和get
;创建单个列表对象,并将cir、NDVI和RGB对象放在该列表中。可以对列表进行命名,以便以编程方式引用每个列表。比随意把它们扔到你的工作区要好得多。@joran,这听起来是个很好的方法。。。你能举个例子吗?如何根据文件夹的内容创建对象列表-THX整个代码可以写成两行,简单得多:files=list.files(“../raster/field1”,pattern=“\\.tif$”);f1.t1=lappy(粘贴0(“../raster/field1/”,文件),堆栈)
f1.t1<-list()
for(i in list.files(path= "../raster/field1", pattern = "\\.tif$")){
f1.t1[[i]]<-stack((paste("../raster/field1/", i, sep="")))
}