R/correlation_function.R

Defines functions correlation

#' Correlogram
#'
#' @param data data.frame
#' @param axissize default is 12
#' @param legendsize default is 12
#' @param legendposition default is c(0.9,0.2)
#' @param legendtitle default is "Correlation"
#' @param method default is Pearson
#' @author Gabriel Danilo Shimizu
#' @export
#' @import Hmisc
#'
correlation=function(data,
                     axissize=12,
                     legendsize=12,
                     legendposition=c(0.9,0.2),
                     legendtitle="Correlation",
                     method="pearson"){
  dm=data
  library(ggplot2)
  library(Hmisc)
  library(reshape2)
  cr <- cor(dm,method = method)
  cr[upper.tri(cr, diag=TRUE)] <- NA
  dados=melt(cr, na.rm=TRUE, value.name="cor")
  pvalor=rcorr(as.matrix(dm),type = method)
  pvalor=pvalor$P
  pvalor[upper.tri(pvalor, diag=TRUE)] <- NA
  pvalor=melt(pvalor, na.rm=TRUE, value.name="p")
  p=ifelse(unlist(pvalor$p)<0.01,"**", ifelse(unlist(pvalor$p)<0.05,"*"," "))
  dados$p=p
  grafico=ggplot(dados,aes(x=Var2,y=Var1,fill=cor))+
  geom_tile(color="black",size=1)+
  scale_x_discrete(position = "top")+
  scale_fill_gradient2(low="#FF0800",
                       mid="white",
                       high="#0000FF", limits=c(-1,1))+
  geom_label(aes(label=paste(format(cor,digits=2),p)),
             fill="lightyellow",label.size = 1)+
  ylab("")+xlab("")+
    labs(fill=legendtitle)+
  theme(axis.text = element_text(size=axissize,color="black"),
        legend.text = element_text(size=legendsize),
        legend.position = legendposition,
        axis.ticks = element_blank(),
        panel.background = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank())+
  labs(caption = "*p<0.05; **p<0.01")
  print(grafico)
}
AgronomiaR/IS documentation built on Jan. 31, 2021, 1:59 a.m.