美文网首页生信
lessR: 相关性矩阵自定义顺序原来可以如此简单

lessR: 相关性矩阵自定义顺序原来可以如此简单

作者: 生信云笔记 | 来源:发表于2020-08-31 14:20 被阅读0次

前言

  今天想跟大家分享一个可以用来给相关性矩阵排序的R包——lessR。该R包封装了很多R基础函数,一个函数可以相当于几个普通函数的功能。这里不介绍其他的函数功能,感兴趣的可以自己去查阅文档。主要说一下它的corReorder函数,这个函数本身是用来画相关性热图的,但它可以给热图自定义排列的顺序,并且可以返回排序的矩阵,这个功能还是挺实用的。如果给矩阵按行或者按列排序都是挺简单的事,但是如果想把行和列关联起来给一个二维的相关性矩阵排列顺序可不是一件那么容易的事情。

这个函数使用起来也是相当的简单,下面来看看具体的使用方法:

>library(lessR)
>mycor <- cor(mtcars)
>head(mycor)
            mpg        cyl       disp         hp       drat         wt
mpg   1.0000000 -0.8521620 -0.8475514 -0.7761684  0.6811719 -0.8676594
cyl  -0.8521620  1.0000000  0.9020329  0.8324475 -0.6999381  0.7824958
disp -0.8475514  0.9020329  1.0000000  0.7909486 -0.7102139  0.8879799
hp   -0.7761684  0.8324475  0.7909486  1.0000000 -0.4487591  0.6587479
drat  0.6811719 -0.6999381 -0.7102139 -0.4487591  1.0000000 -0.7124406
wt   -0.8676594  0.7824958  0.8879799  0.6587479 -0.7124406  1.0000000
            qsec         vs         am       gear       carb
mpg   0.41868403  0.6640389  0.5998324  0.4802848 -0.5509251
cyl  -0.59124207 -0.8108118 -0.5226070 -0.4926866  0.5269883
disp -0.43369788 -0.7104159 -0.5912270 -0.5555692  0.3949769
hp   -0.70822339 -0.7230967 -0.2432043 -0.1257043  0.7498125
drat  0.09120476  0.4402785  0.7127111  0.6996101 -0.0907898
wt   -0.17471588 -0.5549157 -0.6924953 -0.5832870  0.4276059
#下面来给上面的相关性矩阵排个顺序,这里只替换‘mpg’、‘cyl’的顺序
>remat <- corReorder(mycor,vars=c(2,1,3,4,5,6,7,8,9,10,11),heat_map=F)
>head(remat)
            cyl        mpg       disp         hp       drat         wt
cyl   1.0000000 -0.8521620  0.9020329  0.8324475 -0.6999381  0.7824958
mpg  -0.8521620  1.0000000 -0.8475514 -0.7761684  0.6811719 -0.8676594
disp  0.9020329 -0.8475514  1.0000000  0.7909486 -0.7102139  0.8879799
hp    0.8324475 -0.7761684  0.7909486  1.0000000 -0.4487591  0.6587479
drat -0.6999381  0.6811719 -0.7102139 -0.4487591  1.0000000 -0.7124406
wt    0.7824958 -0.8676594  0.8879799  0.6587479 -0.7124406  1.0000000
            qsec         vs         am       gear       carb
cyl  -0.59124207 -0.8108118 -0.5226070 -0.4926866  0.5269883
mpg   0.41868403  0.6640389  0.5998324  0.4802848 -0.5509251
disp -0.43369788 -0.7104159 -0.5912270 -0.5555692  0.3949769
hp   -0.70822339 -0.7230967 -0.2432043 -0.1257043  0.7498125
drat  0.09120476  0.4402785  0.7127111  0.6996101 -0.0907898
wt   -0.17471588 -0.5549157 -0.6924953 -0.5832870  0.4276059

使用corReorder给矩阵排序时,需要给定一个排序向量(这里为c(2,1,3,4,5,6,7,8,9,10,11))分别来代表一个相关性变量,向量的位置就代表了排序后的位置,heat_map默认是开启的,也就是会画一个相关性热图,我这里只是用来排序矩阵,所以关闭了,这个开不开启没有什么影响。最重要的是一定要赋值给一个变量,否则是不返回排序后的向量。现在是不是觉得使用起来相当简单。
这个函数虽然用起来挺简单的,但是有一个需要注意的点,就是这个函数不能用在自定函数里面,在自定义函数里面它接受不到实参,下面来演示一下具体是怎么回事:

# 自定义一个函数
>test <- function(mat,odrnum){remat <- corReorder(mat,vars=odrnum);return(remat)}
# 定义排列顺序
>odrnum <- c(2,1,3,4,5,6,7,8,9,10,11)
# 调用函数
>test(mycor,odrnum)

Error:
------
No correlation matrix entered.

No object called mat exists.

Either enter the correct name, or calculate with: Correlation
Or read the correlation matrix with: corRead

从上面调用函数报的错可以看出矩阵根本没有传递给corReorder函数,所以大家需要使用的时候一定要注意,不然搞不清状况还以为自己写的自定义函数有问题,浪费时间有徒劳无功。对于这个问题,我已经发邮件给作者,希望能弄清楚到底是什么情况,后续可以解决这个问题。

最后

  corReorder函数给矩阵自定义排序,这个功能真的很实用,希望作者后面可以将它完善一下就更好了。emm,今天就分享到这里了。

相关文章

  • lessR: 相关性矩阵自定义顺序原来可以如此简单

    前言   今天想跟大家分享一个可以用来给相关性矩阵排序的R包——lessR。该R包封装了很多R基础函数,一个函数可...

  • 原来可以如此简单

    在我寻觅和追逐了这么多年后的今天,才突然发现原来可以如此简单的活着。 以前,对生活总是期望太高,却忽视了自己...

  • 线性代数 01

    矩阵的初等变换初等变换 秩为r的矩阵初等行变换 逆矩阵求逆矩阵 分块矩阵求逆矩阵分块矩阵 线性相关性线性相关性 R...

  • 原来幸福可以如此简单

    当今的社会 物欲横流 曾以为幸福 离我们 是那么遥远 工作医疗房子教育 哪一样让我们省心 每天的我们 都是 精...

  • 原来快乐可以如此简单

    今天看了一个短视频,一个小女孩在灯光下,对着墙上的影子,认真的看着,接着扭来扭去,摆着各种姿势,走来走去,...

  • 原来幸福可以如此简单

    由于临近毕业季,所以五月份一直在为了论文的完善,修改而焦头烂额,把考研的课程也放在了一边,毕竟毕业才是最重要的,好...

  • 原来开心可以如此简单

    疫情解封,恢复上班,伙伴们欢聚一堂,又开始了奋斗的日常。一个同事从家带来红薯叶给城里的同事,他们甚是稀罕,边抢,边...

  • 心蓝的故宫雪景的教学作业

    原来画画可以如此简单如此开心ヽ(^㉨^)ノ

  • 相关性分析 | R语言 -- 相关性矩阵及可视化

    什么是相关矩阵? 相关矩阵 又称 相关性矩阵 之前,我们描述了如何在两个变量之间进行相关性测[https://ww...

  • 减肥原来可以如此简单(引子)

    今天看了一篇文章,是《天天向上》的节目主持人之一——钱峰的减肥经历,最初看到他减肥后的照片,觉得真是赏心悦...

网友评论

    本文标题:lessR: 相关性矩阵自定义顺序原来可以如此简单

    本文链接:https://www.haomeiwen.com/subject/twwesktx.html