我正在尝试使用 R 中 Raster 库中的堆栈函数创建一个 RasterStack 对象,
library(raster)
但我对函数中使用的参数有疑问。让我展示一下我在做什么:
###set working directory
setwd("myworkingdirectory")
###Upload variables
v1 <- raster("variable1.tif")
v2 <- raster("variable2.tif")
v3 <- raster("variable3.tif")
v4 <- raster("variable4.tif")
所以,如果我输入:
###Creating RasterStack object
var.stacked <- stack(v1, v2, v3)
该函数正常工作并堆叠三个变量。
但是,我必须针对所需变量数量不同的不同运行执行此过程,因此我创建了一个循环,该循环为每次运行输出具有正确数量和类型的变量的字符变量。例如:
###Output from loop
print(num.vars)
[1] "v1" "v3" "v4"
我尝试编写类似以下代码的内容,希望使该过程正常运行,但事实并非如此:
var.stacked <- stack(num.vars)
Error in .local(.Object, ...) :
`myworkingdirectory\e1' does not exist in the file system,
and is not recognised as a supported dataset name.
Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer", :
Cannot create a RasterLayer object from this file. (file does not exist)
为什么 R 试图在我在代码开头设置的工作目录中查找变量名称(在这种情况下为 v1、v2、v3、v4),而不是在默认的 .GlobalEnv 中,就像我显式编写堆栈时那样(v1, v2...) ?
任何有助于使代码工作的帮助将不胜感激。此外,我对 R 不是很有经验,这是我第一次在这里发布问题,所以如果我的问题需要更多说明,请告诉我。
先感谢您!