Существует ли функция R для экспорта корреляций, показанных в матрице корреляций? - PullRequest
1 голос
/ 09 апреля 2019

Я создал корреляционную матрицу с 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 Ответ

1 голос
/ 09 апреля 2019

попробуйте это,


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.

...