Я создал корреляционную матрицу с ggpairs, где мои данные сгруппированы по факторам. Однако я не могу извлечь представленные корреляции (меня интересует вклад каждого фактора в общую корреляцию, а также его значение)
Я создал корреляционную матрицу, используя обе пары ggpair, а другую — с помощью 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, но со значением (как в chart.Correlation). Есть ли способ извлечь содержимое верхней части?
Матрицы корреляции на самом деле не вариант, поскольку у меня есть 10 других подмножеств, подобных предоставленному, и я был бы признателен за то, чтобы сохранить основную корреляцию и ее компоненты вместе.
Попробуй это,
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
.
Спасибо, сработало отлично! Я использовал
medium.strain
для всего набора данных