Search code examples
rcorrelationraster

Pairwise correlation between raster layers in R


I need accomplish a pairwise Pearson correlation between 19 raster layers for Africa Continent extracted from WordClim database. I want to checking what are variables layers more correlated/significant to my model. For this i tried use the layerStats function from Raster package, but after execute my output not contain numerical values, all the rows and columns showed NAs values. Below is my script.

#Loading raster files from WorldClim database
rastFiles<- list.files(pattern="bil")
a<-stack(rastFiles)

# Adjusting for African Continent
newext<-c(-20, 55, -35, 45)
Africa<-crop(a,newext)
Africa

#Correlation
cor<-layerStats(Africa,'pearson')

Solution

  • In r, simply use the code below, ensuring you have na.rm=T to deal with NAs across layers:

    library(raster)    
    jnk=layerStats(raster_stack, 'pearson', na.rm=T)
    corr_matrix=jnk$'pearson correlation coefficient'