5

2 つの行列間のスピアマン相関を計算し、を使用して r 値をプロットしていますcorrplot。有意な相関関係のみをプロットするにはどうすればよいですか (したがって、p 値が 0.00 未満の相関関係のみを表示し、強い相関関係 (r の値が高い場合) であっても、p 値が高い相関関係を削除します)。corr.testパッケージ内を使用して相関行列を生成したpsychので、既に p 値がcor.matrix$p

これは私が使用しているコードです:

library(corrplot)
library(psych)
corr.test(mydata_t1, mydata_t2, method="spearman")
M <- corrplot(cor.matrix$r, method="square",type="lower",col=col1(100),is.corr=T,mar=c(1,1,1,1),tl.cex=0.5)

重要な相関のみをプロットするように変更するにはどうすればよいですか?

4

3 に答える 3

4

のコピーを作成しcor.mat、対応する相関係数をゼロに置き換えます。

cor.matrix2 <- cor.matrix

# find cells with p-values > 0.05 and replace corresponding
# correlations coefficients with zero
cor.matrix2$r[cor.matrix2$p > 0.05] <- 0

# use this matrix for corrplot
M <- corrplot(cor.matrix2$r, method="square",type="lower",col=col1(100),
              is.corr=T,mar=c(1,1,1,1),tl.cex=0.5)

置き換えられた値は白いセルとして表示されます。

于 2014-01-15T20:58:19.240 に答える
1

あなたが求めていることは、次のようなものですsubset

条件を満たすベクトル、行列、またはデータ フレームのサブセットを返します。

したがって、次のことができます。

cor.matrix <- subset(cor.matrix, p<0.00)
P <- corrplot(cor.matrix$r, method="square",type="lower",col=col1(100),is.corr=T,mar=c(1,1,1,1),tl.cex=0.5)
于 2014-01-15T20:42:52.360 に答える