用dplyr、tidyverse和broom创建相关矩阵- P值矩阵

5

大家好。我希望使用 dplyr和/或broom包 从相关矩阵中获取p值,同时测试多个变量。我知道其他方法,但对我来说,dplyr似乎更简单、更直观。此外,dplyr需要将每个变量相关起来以获得特定的p值,这使得该过程更加容易和快速。

我已经查看了其他链接,但它们对这个问题没有用 (示例1示例2示例3)。 当我使用这段代码时,会报告相关系数。然而,P值不会报告。

agreg_base_tipo_a %>% 
  dplyr::select(S2.RT, BIS_total, IDATE, BAI, ASRS_total) %>% 
  do(as.data.frame(cor(., method="spearman", use="pairwise.complete.obs")))

请查看以下可复制的代码并将其转换为Word文档:
set.seed(1164)

library(tidyverse)
ds <- data.frame(id=(1) ,a=rnorm(10,2,1), b=rnorm(10,3,2), c=rnorm(5,1,05))

ds %>% 
  select(a,b,c) %>% 
  do(as.data.frame(cor(., method="spearman", use="pairwise.complete.obs")))
1个回答

7
这个答案基于akrun在这个帖子中的评论。通过使用rcorr函数,我们可以计算相关性和P值。要访问这些组件,请使用ds_cor$rds_cor$P
set.seed(1164)

library(tidyverse)
library(Hmisc)

ds <- data.frame(id=(1) ,a=rnorm(10,2,1), b=rnorm(10,3,2), c=rnorm(5,1,05))

ds_cor <- ds %>%
  select(-id) %>% 
  as.matrix() %>%
  rcorr(type = "spearman")

ds_cor
#    a     b     c
# a  1.00  0.28 -0.42
# b  0.28  1.00 -0.25
# c -0.42 -0.25  1.00
# 
# n= 10 
# 
# 
# P
#   a      b      c     
# a        0.4250 0.2287
# b 0.4250        0.4929
# c 0.2287 0.4929       

2
使用 rcorr 很不错的选项。 - akrun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接