【发布时间】:2022-01-22 14:22:25
【问题描述】:
我有一个包含 14 列的 data.frame 数据库。我将这些列分为两组:[,1:6] and [,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 especific colunms
corrplot(correlation_df,
method="color", addCoef.col = "black")
但是,除了计算相关性之外,我希望图表仅显示显着的相关性(p 值
#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
我可以做些什么来修复这个视图?
OBS:
我试图在不考虑[,1:6] and [,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
【问题讨论】:
-
我不懂你的计算,不应该
cor(df)[1:6, 7:14]吗? -
是的,我可以,但是如何只显示重要的值?
标签: r correlation p-value r-corrplot