我使用在邮件列表中多次发布的cor.prob()函数来获得相关矩阵(较低对角线)和p - 值(上对角线):在R中将矩阵平展到四列(索引和上/下三角形)
cor.prob <- function (X, dfr = nrow(X) - 2) {
R <- cor(X)
above <- row(R) < col(R)
r2 <- R[above]^2
Fstat <- r2 * dfr/(1 - r2)
R[above] <- 1 - pf(Fstat, 1, dfr)
R[row(R) == col(R)] <- NA
R
}
d <- data.frame(x=1:5, y=c(10,16,8,60,80), z=c(10,9,12,2,1))
cor.prob(d)
> cor.prob(d)
x y z
x NA 0.04856042 0.107654038
y 0.8807155 NA 0.003523594
z -0.7953560 -0.97945703 NA
如何会崩溃上述相关矩阵(与在上半部下半部,p值的相关性)向四列的矩阵:两个索引,所述相关性和p值?例如: -
i j cor pval
x y .88 .048
x z -.79 .107
y z -.97 0.0035
我见过the answer to the previous question like this,但只会给我一个3列的矩阵,而不是一个四列矩阵的p值和相关单独的列。
任何帮助表示赞赏!
为了清楚起见,我刚编辑。我想将cor.prob()的输出合并到一个四列表中,其中两列用于索引,一列用于相关性(位于原始矩阵的较低对角线上),一列用于p-值(位于原始矩阵的上半部分)。 –