Ich versuche, einen pixelweisen granger kausalen Test auf zwei Rasterstapel mit je 60 Raster durchzuführen. Das folgende Beispiel hat nur 20 Rastern:Granger kausale Tests auf Raster-Stacks in R
library(raster)
library(lmtest)
r <- raster(ncol=10, nrow=10)
r[]=1:ncell(r)
S <- stack(r,r,r,r,r,r,r,r,r,r,r,r)
R <- stack(r,r,r,r,r,r,r,r,r,r,r,r)
FNO2<-stack(S,R)
Die ursprüngliche Funktion th „lmtest“ Paket mit ist:
D<- grangertest(degg ~ dchick, order=4)
Hier ist eine Modifikation Ich habe die ursprüngliche grangertest Funktion auf Raster Stapel laufen zu lassen?
funG <- function(x) { if (is.na(x[1])){ NA } else { grangertest(x[13:24] ~ x[1:12],order=1)}}
granger<-calc(FNO2,funG)
Wo FNO2 ist der Stapel von beiden Raster-Stacks. Ich erhalte den folgenden Fehler:
Error in `colnames<-`(`*tmp*`, value = c("x", "y", "x_1", "y_1")) :
length of 'dimnames' [2] not equal to array extent
Wie ändere ich diese Funktion für Raster bitte?
Dank @RobertH. das hat funktioniert. –