将p值附加到相关矩阵数据帧

时间:2015-07-13 19:34:59

标签: r

我正在尝试使用相关性旁边的p值创建相关矩阵,但我不确定如何合并这两者。

我的代码:

library(psych)

set.seed(1)
df <- data.frame(
    col1 = rnorm(10),
    col2 = rnorm(10),
    col3=rnorm(10)
)
cors<-corr.test(df)
outputDF<-as.data.frame(cors$r)[lower.tri(cors$r,diag=FALSE),]
p.val <- (cors$p)[lower.tri(cors$p)]
View(outputDF)

我的目标(由于我的R问题,p值可能不正确):

        col1      col2
col2 -0.37(0.283)   
col3 -0.71(0.019) 0.60(0.06)

1 个答案:

答案 0 :(得分:0)

我们可以使用paste将相应的元素粘贴到&#39; cors $ r&#39;和&#39; cors $ p&#39;。通过使用[],我们获得与cors$p相同的结构。将对角线和上三角矩阵中的元素更改为'',并将具有至少一个非空元素的行和列进行子集化。

res <- cors$p
res[] <- paste0(round(cors$r,2), "(", round(cors$p,2), ")")
res[upper.tri(res, diag=TRUE)] <- ''
res[!!rowSums(res!=''),!!colSums(res!='')]
#     col1          col2       
#col2 "-0.38(0.28)" ""         
#col3 "-0.72(0.02)" "0.6(0.06)"