我正在跟进一个没有答案的老问题(https://stackoverflow.com/questions/31653029/r-thresholding-networks-with-inputted-p-values-in-q-graph)。我正在尝试评估变量之间的关系。为此,我使用了相关网络图。一旦我这样做了,我想实现一个显着性阈值组件。例如,我只想显示 p 值 <0.05 的结果。关于如何实现我的代码的任何想法?
数据集:https ://www.dropbox.com/s/xntc3i4eqmlcnsj/d100_partition_all3.csv?dl=0
我的代码:
library(qgraph)
cor_d100_partition_all3<-cor(d100_partition_all3)
qgraph(cor_d100_partition_all3, layout="spring",
label.cex=0.9, labels=names(d100_partition_all3),
label.scale=FALSE, details = TRUE)
此外,我还有一小段代码可以将 R2 值转换为 p.values:
代码:
cor.mtest <- function(mat, ...) {
mat <- as.matrix(mat)
n <- ncol(mat)
p.mat<- matrix(NA, n, n)
diag(p.mat) <- 0
for (i in 1:(n - 1)) {
for (j in (i + 1):n) {
tmp <- cor.test(mat[, i], mat[, j], ...)
p.mat[i, j] <- p.mat[j, i] <- tmp$p.value
}
}
colnames(p.mat) <- rownames(p.mat) <- colnames(mat)
p.mat
}
p.mat <- cor.mtest(d100_partition_all3)
干杯