厚缊

诹图——ggcor简介(五)

厚缊 / 2020-02-05


穿插着介绍点新内容,有时候我们需要导出格式化后的相关系数矩阵放在论文中,但是一般情况下相关系数矩阵和p 值是两个独立的矩阵,要整合在一起还要花点精力,对于cor_tbl对象的长格式,更是十分麻烦。因此,我在ggcor中新增了导出(或者是显示)格式化相关系数矩阵的函数。

基础函数

最基础的函数格式化函数是format_cor(),前两个参数分别是相关系数矩阵和p 值矩阵,返回值是data frame

library(ggcor)
args(format_cor)
## function (corr, p.value = NULL, type = "full", show.diag = FALSE, 
##     digits = 2, nsmall = 2, sig.level = c(0.05, 0.01, 0.001), 
##     mark = c("*", "**", "***"), nice.format = TRUE) 
## NULL
mtcars2 <- mtcars[1:8] ## 主要为了例子
cor(mtcars2) %>% format_cor() %>% 
  DT::datatable()

当指定p 值后,会标记线显著性星号,默认******分别表示0.001、0.01和0.05显著性水平。

corr <- correlate(mtcars2, cor.test = TRUE)
format_cor(corr$r, corr$p.value) %>% 
  DT::datatable()

可以通过参数sig.level自己调整显著性水平临界值。

format_cor(corr$r, corr$p.value, 
           sig.level = c(0.1, 0.05, 0.01)) %>% 
  DT::datatable()

当然,我们也可以只保留上/下三角。

format_cor(corr$r, corr$p.value, type = "lower") %>% 
  DT::datatable()

display_cor()函数

display_cor()是一个S3泛型函数,支持几种最常见的相关系数格式类型(包括cor_tbl),底层依赖format_cor()函数,所以format_cor()有的参数display_cor()都有。

cor(mtcars2) %>% display_cor() %>% 
  DT::datatable()
corr %>% display_cor() %>% 
  DT::datatable()
psych::corr.test(mtcars2) %>% 
  display_cor() %>% 
  DT::datatable()
Hmisc::rcorr(data.matrix(mtcars2)) %>% 
  display_cor() %>% 
  DT::datatable()
fortify_cor(mtcars2, type = "upper", cor.test = TRUE) %>% 
  display_cor() %>% 
  DT::datatable()

分组的cor_tbl对象

分组的cor_tbl对象相当于有多个表,因此在输出的时候是把这多个表按行叠加起来的,看一个简单的例子。

fortify_cor(mtcars2, cor.test = TRUE, type = "upper",
            group = sample(LETTERS[1:2], 32, replace = TRUE)) %>% 
  display_cor() %>% 
  DT::datatable()

小结

format_cor()display_cor()都还比较初级,还不支持同时输出p值,也不支持特殊的显著性标记符号,后续可能根据需求做一些扩展。

上期的下期预告延期了,下期预告:mantel 检验。