【问题标题】:How to make correlation matrix with especific columns in R如何使用R中的特定列制作相关矩阵
【发布时间】:2023-03-08 16:07:01
【问题描述】:

我有一个多列数据框,可以分为两类:土地利用和水质。

我想只分析水质变量和土地利用变量之间的相关性,而没有土地利用变量之间的相关性和质量变量之间的相关性。

我正在使用包 corrplot() spearmen 方法,但我不知道如何忽略类别之间的相关性。

Landuse = 蔬菜、湿、干、水

优质水 = OD、DBO、DQO

library(ggplot2)
library(dplyr)
library(corrplot)


veg<-c(1,2,3,2.3,4.1)
wet<-c(2,2.3,1.9,2.5,2.2)
dry<-c(5,5.1,6.9,4.3,5.3)
water<-c(0.69,0.75,0.81,0.82,0.82)
coli<-c(10,11,12,13,9.7)
OD<-c(1,3,2.5,2.7,1.8)
DBO<-c(7,8,9,6.5,8)
DQO<-c(3.5,4,4.1,3,2)

#landuse=veg, wet, dry, water
#quality water = OD, DBO, DQO

data_land<-data.frame(veg, wet, dry, water, OD, DBO, DQO)

correl<-corrplot(cor(as.matrix(data_land),method = "spearman"),
                 method = "color",
                  tl.cex = 0.9,
                 number.cex = 0.95,
                 addCoef.col = "black")

例如,我不想计算 DQO 和 DBO 之间的相关性,因为它们是质量参数。我也不希望计算 veg 和 dry 之间的相关性,因为它们是土地利用类别。

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以在调用cor 时通过选择列来计算土地和水变量之间的 Spearman 相关性。函数cor 也可以接受第二个矩阵来计算相关性 - 因此您可以计算“土地利用”矩阵(第 1-4 列)和“水质”矩阵(第 5-7 列)之间的相关性:

    my_cor <- cor(data_land[, 1:4], 
                  data_land[, 5:7], 
                  method = "spearman")
    
    corrplot(my_cor,
             method = "color",
             tl.cex = 0.9,
             number.cex = 0.95,
             addCoef.col = "black")
    

    情节


    如果您想要一个平方相关图,并且您不想显示相关性的空白区域,您可以尝试像以前一样计算相关性,将您想要隐藏的相关结果设置为 NA,然后将na.label 设置为corrplot 中的空白空间:

    my_cor <- cor(data_land, method = "spearman")
    
    my_cor[1:4, 1:4] <- NA
    my_cor[5:7, 5:7] <- NA
    
    corrplot(my_cor,
             na.label = " ",
             method = "color",
             tl.cex = 0.9,
             number.cex = 0.95,
             addCoef.col = "black")
    

    【讨论】:

      猜你喜欢
      • 2020-06-25
      • 1970-01-01
      • 1970-01-01
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 2015-10-20
      相关资源
      最近更新 更多