【发布时间】:2017-10-23 21:04:00
【问题描述】:
我正在尝试在 NDVI/降水的栅格堆栈上逐个像素地从回归运行中提取残差。当我用我的一小部分数据运行它时,我的脚本就可以工作。但是当我尝试运行整个研究区域时,我得到:“setValues(out, x) 中的错误:值必须是数字、整数、逻辑或因子”
lm 有效,因为我可以提取斜率和截距。我只是无法提取残差。
知道如何解决这个问题吗?
这是我的脚本:
setwd("F:/working folder/test")
gimms <- list.files(pattern="*ndvi.tif")
ndvi <- stack(gimms)
precip <- list.files(pattern="*pre.tif")
pre <- stack(precip)
s <- stack(ndvi,pre)
residualfun = function(x) { if (is.na(x[1])){ NA } else { m <- lm(x[1:6] ~ x[7:12], na.action=na.exclude)
r <- residuals.lm(m)
return (r)}}
res <- calc(s,residualfun)
【问题讨论】:
-
哼,也许你的公式参数有问题?我会明确地调用列。
-
指向您数据的链接已过时。