gpt4 book ai didi

r - 生成具有特定列且仅在 corrplot 中具有重要值的相关矩阵

转载 作者:行者123 更新时间:2023-12-05 03:32:38 29 4
gpt4 key购买 nike

我有一个包含 14 列的 data.frame 数据库。我将这些列分成两组:[,1:6] 和 [,7:14]

df<-read.csv("http://renatabrandt.github.io/EBC2015/data/varechem.csv", row.names=1)

df

我想计算这两组列之间的相关性。为此,我使用了这个命令并且效果很好:

#I want to correlate columns [1:6] with [7:14] only.
correlation_df<-cor(df[,1:6],
df[,7:14], method="spearman", use="pairwise.complete.obs")

# graph correlation specific columns
corrplot(correlation_df,
method="color", addCoef.col = "black")

enter image description here

但是,除了计算相关性之外,我希望图表仅显示显着相关性(p 值 <0.05)。我尝试了以下代码,但它没有工作,因为 View 是错误的。

#I can get the significance level matrix
correlation_df_sig<-cor.mtest(df, conf.level = 0.95, method = "spearman")
correlation_df_sig

#生成仅具有显着值的相关矩阵

plot2<-corrplot(correlation_df,
p.mat = correlation_df_sig$p,
insig='blank',
addCoef.col = "black")
plot2

enter image description here

我能做些什么来修复这个 View ?

观察:我试图在不考虑 [,1:6] 和 [,7:14] 组的情况下生成一个完整的数组,但它也出错了。另外,我不想计算同一组中列之间的相关性。例如:第 1 列与第 2 列,第 1 列与第 3 列...

plot1<-corrplot(cor(df, method = 'spearman', use = "pairwise.complete.obs"),
method = 'color',
addCoef.col = 'black',
p.mat = correlation_df_sig$p,
insig='blank',
diag = FALSE,
number.cex = 0.5,
type='upper'
)
plot1

enter image description here

最佳答案

我会使用完善的Hmisc::rcorr 进行计算。在 corrplot::corrplot 中,将 corr=p.mat= 子集与 [1:6, 7:14 ]

c_df <- Hmisc::rcorr(cor(correlation_df), type='spearman')

library(corrplot)
corrplot(corr=c_df$r[1:6, 7:14], p.mat=c_df$P[1:6, 7:14], sig.level=0.05,
method='color', diag=FALSE, addCoef.col=1, type='upper', insig='blank',
number.cex=.8)

enter image description here

这似乎对应于 p 值。

m <- c_df$P[1:6, 7:14] < .05
m[lower.tri(m, diag=TRUE)] <- ''
as.data.frame(replace(m, lower.tri(m, diag=TRUE), ''))
# Al Fe Mn Zn Mo Baresoil Humdepth pH
# N FALSE FALSE TRUE FALSE FALSE FALSE FALSE
# P TRUE TRUE FALSE FALSE FALSE FALSE
# K TRUE FALSE FALSE FALSE TRUE
# Ca FALSE TRUE TRUE FALSE
# Mg TRUE TRUE TRUE
# S FALSE FALSE

关于r - 生成具有特定列且仅在 corrplot 中具有重要值的相关矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70430772/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com