Pairwise correlation between raster layers in R

Ricardo Adelino picture Ricardo Adelino · Aug 19, 2015 · Viewed 7.7k times · Source

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')

Answer

Lucas Fortini picture Lucas Fortini · Aug 19, 2015

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'