如何对函数内创建的相关矩阵的行和列进行重新排序

瑞安

考虑以下数据帧dat1

set.seed(123)
dat1 <- data.frame(Loc = rep(letters[1:20], each = 10),
                   ID = 1:200,
                   var1 = rnorm(200),
                   var3 = rnorm(200),
                   var4 = rnorm(200),
                   var5 = rnorm(200),
                   var6 = rnorm(200))
dat1$ID <- factor(dat1$ID)

下面的函数将使用rstatix包做一个dunn_test所述的电平之间Loc取其为var被指定时,它将返回从所述P值的相关矩阵dunn_test

library(rstatix)
dunn.cor <- function(dat, var, gv){
  res <- dat%>% rstatix::dunn_test(as.formula(paste(var, "~", gv)))
  p <- res$p
 dst <- matrix(NA, 20, 20)
 dst[lower.tri(dst)] <- p
 dst <- as.dist(dst)
 attr(dst, "Labels") <- levels(dat1$Loc)
 dst <- as.matrix(dst, upper=TRUE, lower=TRUE)
 diag(dst) <- 1
 dst <- round(dst,2)
 return(dst)
}
#example for var1:
dunn.cor(dat=dat1, var= "var1", gv = "Loc")

我想order在函数外部创建一个对象,该对象指定希望行AND列出现在矩阵中的顺序。例如:

order <- c("m", "l", "n", "h", "p", "j", "r", "k", "c", "d", "f", "o", "t", "i", "g", "s", "e", "q", "b", "a")

为了明确起见,我希望矩阵的行和列以此顺序排列,就像常规的相关矩阵一样。如何修改函数,以便矩阵行和列以此顺序排列?

阿克伦

如果我们需要有这样一个特定的顺序,也可以创建一个factorlevels指定的

dat1$Loc <- factor(dat1$Loc, levels = order)

然后我们申请

library(dplyr)
library(tidyr)
library(tibble)
out <- dat1 %>% 
   rstatix::dunn_test(var1 ~ Loc) %>%
   select(group1, group2, p) %>%
   pivot_wider(names_from = group2, values_from = p, values_fill = list(p = 0)) %>% 
   column_to_rownames('group1') %>% 
   as.matrix
out1 <- out + t(out)



dimnames(out1)
#[[1]]
# [1] "m" "l" "n" "h" "p" "j" "r" "k" "c" "d" "f" "o" "t" "i" "g" "s" "e" "q" "b"

#[[2]]
# [1] "l" "n" "h" "p" "j" "r" "k" "c" "d" "f" "o" "t" "i" "g" "s" "e" "q" "b" "a"

如果我们需要一个二进制矩阵

out2 <- +(out1 <= 0.05)

并与 corrplot

corrplot(out2, is.corr = FALSE, type = 'lower')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用J创建一个计算相关/相关矩阵的函数?

排序相关矩阵R

如何根据相关矩阵和波动向量创建协方差矩阵?

熊猫:创建随机样本和相关矩阵

Seaborn对角相关矩阵跳过第一行和最后一列

如何根据其他矩阵的行名称对矩阵进行子集化和重新排序

如何从dunns测试的输出创建p值的相关矩阵?

如何在正确的视图中创建梨子相关矩阵

如何为网络创建度相关矩阵

相关矩阵和p值按列和行组合在一个矩阵中

在相关矩阵上进行聚类

从熊猫中的相关矩阵创建列表

用相关矩阵创建图形

为什么相关矩阵图的热图不显示最后一行和最后一列

如何计算MxN相关矩阵

重新格式化R中的相关矩阵,以删除右上角“半”中的行名,列名和单元格

使用 seaborn 的相关矩阵热图无法在顶行和底行正确显示

如何找到最大的子矩阵,其值按行和列进行排序?

使用 R 对 A 行的 A 元素和矩阵的 A 列进行排序

对邻接矩阵的行和列进行排序以显示集团

对与矩阵的行和列相对应的对向量进行排序

分组相关矩阵

R-如何基于相关矩阵而不是原始数据进行回归?

重新排列相关矩阵图的轴标签

r协方差矩阵和相关矩阵

如何使用大熊猫创建多元正态分布的相关矩阵?

浮点列和字符串列之间的熊猫相关矩阵

熊猫:如何从相关矩阵中删除自相关

如何计算具有多列的熊猫中的(非自我)相关矩阵?