Я пытаюсь создать функцию, которая вычисляет коэффициент корреляции между двумя столбцами данных из набора данных, который у меня есть, и повторяет это для каждой комбинации столбцов.
Затем я хочу, чтобы все коэффициенты отображались на тепловой карте.
Это схема набора данных и то, что я хочу включить в тепловую карту.
Как мне отредактировать свою функцию, чтобы она циклически перебирала набор данных и могла вычислять коэффициент корреляции между всеми столбцами и отображать значение на тепловой карте? Сначала я пытаюсь создать пустой фрейм данных со всеми нулями, а затем хочу, чтобы он заполнил все значения.
master <- read.table("~/Desktop/Heatmap Project/master.txt", sep = "\t", header = T, stringsAsFactors = F)
vector_a <- master$Median_A
vector_b <- master$Median_B
heatmap_prep <- function(vector_a,vector_b){
dummy <- as.data.frame(matrix(0, ncol=length(vector_b), nrow=length(vector_a))
for (i in 1:length(vector_a)){
first_number <- vector_a[i]
for(j in 1:length(vector_b)){
second_number <- vector_b[j]
result <- cor(vector_a,vector_b)
dummy [i,j] <- result
}
}
return(dummy)
}
heatmap_data_matrix <- as.matrix(heatmap_prep(vector_a,vector_b))
#Create heatmap:
library(stats)
library(gplots)
library(RColorBrewer)
heatmap(heatmap_data_matrix,Colv = NA, Rowv=NA, revC=T, scale='none', xlab= "B", ylab= "A", main = "Heatmap", col = rev(brewer.pal(11,"RdBu")))
Большое спасибо!