Существует ли функция R для экспорта корреляций, показанных в матрице корреляций?
Я создал корреляционную матрицу с ggpairs, где мои данные сгруппированы по факторам. Однако я не могу извлечь представленные корреляции (меня интересует вклад каждого фактора в общую корреляцию, а также его значение)
Я создал корреляционную матрицу, используя как ggpairs, так и другую, используя PerformanceAnalytics. Я также пытался рассчитать корреляции, а также значение p (здесь не повезло) для каждого из факторов.
ggpairs(s1[,4:12], aes(colour = s1$media), title = "1308", upper=list(
continuous=wrap("cor", size = 2.3)))
chart.Correlation(s1[,4:6], histogram=TRUE, pch=19,cex.labels=0.3, method = "s")
Я также пытался вычислить корреляции и p-значения, но для p-значений мой цикл останавливается на первой матрице.
for(l in levels(s1[,3])){
cor.by.treat[[l]]<-(cor(s1[which(s1[,1]==l),4:12],
use="complete.obs", method = "spearman"))
}
pcor.by.treat <- list()
> for(l in levels(s1[,1])){
pcor.by.treat[[l]]<-(cor.mtest(s1[which(s1[,1]==l),4:12],
method = "spearman", use="complete.obs"))
}
подмножество данных можно найти здесь
Я хотел бы визуализировать свои данные как в ggpairs, но со значением (как в диаграмме. Соотношение). Есть ли способ извлечь содержимое верхней части?
Матрицы корреляции на самом деле не вариант, так как у меня есть 10 других подмножеств, таких как предоставленная, и я хотел бы сохранить основную корреляцию и ее компоненты вместе.
1 ответ
Попробуй это,
data_list <- split(s1, s1$media)
p_value <- lapply(data_list, function(x) corrplot::cor.mtest(x[, 4:12])[["p"]])
correlation <- lapply(data_list, function(x) cor(x[, 4:12], method = "spearman"))
Это даст вам список p_value
а также correlation
сгруппированы по media
, Вместо media
ты можешь использовать medium.strain
также.