[R] How to handle NA-values in raster-based Geary´s C test?

Kerstin Traut Kerstin.Traut at uni-jena.de
Thu Jul 12 15:44:02 CEST 2012


Hi,

I have a question on testing spatial autocorrelation on raster data  
including NA-values. In particular, I like to calculate Moran´s I and  
Geary´s C indices by using inverse distance weighting matrices.
Calculating Moran´s I with moran.test works fine, because the function  
contains the option "na.action=na.pass". Unfortunately, the function  
geary.test does not contain this option. The problem is that  
geary.test needs an nb argument for which I cannot perform for example  
nb<-ifelse(value, nb, NA), because it would change the nb-format to a  
list-format.
Is there a way to ignore NA-values in geary.test? Or how can I set NA  
values in a neigbors (nb) list?

Thank you very much,
Kerstin

---

file<-raster(test.tif")
mask<-extent(file, 1, 50, 1, 50)
subset<-crop(file,mask,test.tif", overwrite=TRUE)
value <- as.matrix(subset)

# Creation of a list of integer vectors giving the region id numbers  
for the neighbors within the grid extent
nb <- cell2nb(50, 50, type="queen", torus=TRUE)

# Calculation of the distances along the links in the neighbous list
dist <- nbdists(nb, coordinates(subset), longlat=TRUE)

# Converting the distances to inverse distance values
inv.dist <- lapply(dist, function (x) 1/(x*100))

# Supplementing the neighbors list with spatial weights for a coding scheme
nb.idw <- nb2listw(nb, glist=inv.dist, style="W")
summary(unlist(nb.idw$weights))

# Moran's test (two-sided)
moran.global <- moran.test(value, listw=nb.idw, zero.policy = TRUE,  
na.action=na.pass, alternative="two.sided")
moran.global

# Geary's test (two-sided)
geary.global <- geary.test(value, listw=nb.idw, zero.policy = TRUE ,  
alternative="two.sided")
geary.global

----------------------------------------------------------------
This message was sent through https://webmail.uni-jena.de



More information about the R-help mailing list