【发布时间】:2018-05-06 05:19:18
【问题描述】:
我正在使用栅格,我有一个 7n 层的 RasterStack。我想使用下面的公式计算逐像素回归。我试图用raster::calc 来做这件事,但是我的函数失败了,并显示了消息:
'lm.fit中的错误(x,y,偏移量=偏移量,singular.ok=singular.ok, ...) : 0 (non-NA) 案例。'
但是所有栅格都可以,并且包含数字(不仅是 NA),我可以绘制它, 我可以用公式计算一般线性回归
cr.sig=lm (raster::as.array(MK_trend.EVI.sig_Only) ~ raster::as.array(stack.pet)+raster::as.array(stack.tmp)+raster::as.array(stack.vap)+raster::as.array(stack.pre)+raster::as.array(stack.wet)+raster::as.array(stack.dtr))
但是当我用
堆叠图层时allData = stack(MK_trend.EVI.sig_Only,stack.dtr,stack.wet,stack.pre,stack.vap,stack.tmp,stack.pet)
并尝试计算函数
# Regression Function, R2
lmFun=function(x){
x1=as.vector(x);
if (is.na(x1[1])){
NA
} else {
m = lm(x1[1] ~ x1[2]+x1[3]+x1[4]+x1[5]+x1[6]+x1[7])
return(summary(m)$r.squared)
}
}
我看到了错误消息。
我在 R 和编程方面很新,所以,也许,有一些愚蠢的错误?
为了使处理工作,我将不胜感激。
【问题讨论】:
-
您能否提供一些代码来创建重现错误的示例数据?
-
@RobertH 亲爱的罗伯特,我觉得我的数据集可能有问题,所以我以 ZIP 存档 (1,7Gb) 的形式上传它dropmefiles.com/PDZL0
标签: r function regression raster calc