簡體   English   中英

如何在Corrplot中添加數據框名稱作為標題?

[英]How can I add a data frame name as a title in a corrplot?

我將數據集分為一些數據框,我想創建一個包含所有相關圖的pdf文件,但是每個圖都應以數據框的名稱作為標題。 這是我的代碼:

# Function 1 for correlation matrix
cor.mtest <- function(mat, conf.level = 0.95){
  mat <- as.matrix(mat)
  n <- ncol(mat)
  p.mat <- lowCI.mat <- uppCI.mat <- matrix(NA, n, n)
  diag(p.mat) <- 0
  diag(lowCI.mat) <- diag(uppCI.mat) <- 1
  for(i in 1:(n-1)){
    for(j in (i+1):n){
      tmp <- cor.test(mat[,i], mat[,j], conf.level = conf.level)
      p.mat[i,j] <- p.mat[j,i] <- tmp$p.value
      lowCI.mat[i,j] <- lowCI.mat[j,i] <- tmp$conf.int[1]
      uppCI.mat[i,j] <- uppCI.mat[j,i] <- tmp$conf.int[2]
    }
  }
  return(list(p.mat, lowCI.mat, uppCI.mat))
}

# Function 2 for correlation plot
correlation <- function(obj){
  dat <- select_if(obj, is.numeric)
  pval.mat <- cor.mtest(dat,0.95)
  title <- #NAME OF THE DATA FRAME#
  dat1 <- corrplot(cor(dat,method="pearson"),method="number",type="upper",sig.level=0.05,p.mat = pval.mat[[1]], tl.pos="upper")
  dat2 <- corrplot(cor(dat,method="pearson"),add=T,type="lower",method="square", tl.pos="n", title=title, mar=c(0,0,1,0))
  return(list(dat1, dat2))
}

# Saving all correlation in a PDF file
par(ask=F)
pdf('correlations.pdf')
corrbv1nona <- correlation(bv1nona)
corrbv2nona <- correlation(bv2nona)
corrbv3nona <- correlation(bv3nona)
corrbv4 <- correlation(bv4)
corrfull1nona <- correlation(full1nona)
corrfull2nona <- correlation(full2nona)
corrfull3nona <- correlation(full3nona)
corrfull4 <- correlation(full4)
corrsl1nona <- correlation(sl1nona)
corrsl2nona <- correlation(sl2nona)
corrsl3nona <- correlation(sl3nona)
corrsl4 <- correlation(sl4)
dev.off()

或者您可以使用提取名稱

title <- deparse(substitute(obj))

您可以使用match.call提取名稱:

title <- as.character(as.list(match.call())$obj)

第一次使用correlation ,應將title設置為"bv1nona"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM