我想在两个光栅块上运行像素明智的回归函数。一个代表空气温度,另一个代表气溶胶光学深度。我通过将相同的像素大小和相似的空间范围堆叠在一起。我已经通过以下方式定义了lm函数。
fun2 = function(x){
if(is.na(x[1])){
NA
} else {
lm (x [1:45] ~ x [46:90])$coefficients[2]
}}
定义函数之后,我在栅格数据包中使用了calc函数。
slope <- calc(s, fun2)
但是,该函数返回以下错误。
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
0 (non-NA) cases
8.
stop("0 (non-NA) cases")
7.
lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...)
6.
lm(x[1:45] ~ x[46:90])
5.
FUN(newX[, i], ...)
4.
apply(x, 1, fun)
3.
.local(x, fun, ...)
2.
calc(s, fun2)
1.
calc(s, fun2)
在这方面有人可以帮助我吗?我是R语言的新手。因此,这对用户社区将是一个很大的帮助。 问候