使用R中逐月光栅堆栈的光栅线性和条件回归

使用R中逐月光栅堆栈的光栅线性和条件回归,r,date,linear-regression,indices,r-raster,R,Date,Linear Regression,Indices,R Raster,我有两个光栅堆栈,我想进行折射分析。如果每个堆栈中的每个光栅是一年中的一个月(6个数据点将是两年中的三个月,即两个不同年份的一月、二月和三月),我如何使用指数计算坡度,以便结果生成3个坡度光栅(每个月一个) #第一个光栅轨迹 r试着玩1:12 fun(1:12) # Error in model.frame.default(formula = x[6:12] ~ x[1:6], drop.unused.levels = TRUE) : # variable lengths differ (

我有两个光栅堆栈,我想进行折射分析。如果每个堆栈中的每个光栅是一年中的一个月(6个数据点将是两年中的三个月,即两个不同年份的一月、二月和三月),我如何使用指数计算坡度,以便结果生成3个坡度光栅(每个月一个)

#第一个光栅轨迹

r试着玩
1:12

fun(1:12)

# Error in model.frame.default(formula = x[6:12] ~ x[1:6], drop.unused.levels = TRUE) : 
#  variable lengths differ (found for 'x[1:6]')
应该是

fun=function(x) { if (is.na(x[1])){ NA } else { lm(x[7:12] ~ x[1:6] )$coefficients [2]}}
工作示例

library(raster)
r <- raster(ncol=10, nrow=10)
set.seed(99)
s <- stack(sapply(1:12, function(i) setValues(r, runif(ncell(r)))))

fun <- function(x) { if (is.na(x[1])){ NA } else { lm(x[7:12] ~ x[1:6] )$coefficients [2]}}

slope <- calc(s, fun)
库(光栅)

r谢谢你的更正@RobertH。关于如何按指数或按月进行回归,您有什么想法吗?
library(raster)
r <- raster(ncol=10, nrow=10)
set.seed(99)
s <- stack(sapply(1:12, function(i) setValues(r, runif(ncell(r)))))

fun <- function(x) { if (is.na(x[1])){ NA } else { lm(x[7:12] ~ x[1:6] )$coefficients [2]}}

slope <- calc(s, fun)
fun3 <- function(x) {
    r <- rep(NA, 3)
    if (!is.na(x[1])) {
       r[1] <- lm(x[3:4] ~ x[1:2] )$coefficients[2]
       r[2] <- lm(x[7:8] ~ x[5:6] )$coefficients[2]
       r[3] <- lm(x[11:12] ~ x[9:10] )$coefficients[2]
    }
    r
 }

slope3 <- calc(s, fun3)