使用以下数据框,我需要执行一次操作,dunn_test
以查看哪个Loc
彼此不同var
:
set.seed(123)
dat1 <- data.frame(Loc = rep(letters[1:20], each = 10),
ID = 1:200,
var1 = rnorm(200),
var2 = rnorm(200),
var3 = rnorm(200),
var4 = rnorm(200),
var5 = rnorm(200),
var6 = rnorm(200))
dat1$ID <- factor(dat1$ID)
library(rstatix)
res <- dunn_test(dat1, var1 ~ Loc)
如何Loc
在object的s之间创建一个“ p值的相关矩阵” res
,使其看起来如下所示,并显示每个成对比较的p值:
a b c d e f g h i j k l m n o p q r s t
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
这是基本的R方法:
pvals <- res$p
dst <- matrix(NA, 20, 20)
dst[lower.tri(dst)] <- pvals
dst <- as.dist(dst)
attr(dst, "Labels") <- letters[1:20]
dst <- as.matrix(dst, upper=TRUE, lower=TRUE)
dst[1:5, 1:5]
# a b c d e
# a 0.0000000 0.54159206 0.25928005 0.33606421 0.7661024
# b 0.5415921 0.00000000 0.08212246 0.72516551 0.3639394
# c 0.2592800 0.08212246 0.00000000 0.03661193 0.4061898
# d 0.3360642 0.72516551 0.03661193 0.00000000 0.2078686
# e 0.7661024 0.36393940 0.40618977 0.20786861 0.0000000
您没有在对角线中指出所需的内容。由于这些是p值,因此用1填充对角线是有意义的:
diag(dst) <- 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句