用于创建热图所需的相关矩阵的函数出错?

Error with function used to create correlation matrix needed for heatmap?

我正在尝试创建一个函数,用名为 "master" 的数据框中各列数据之间的相关性填充空数据框 "dummy"。

这是我的功能:

master <- read.table("~/Desktop/Heatmap_Project/master.txt", header = T, sep = "\t", stringsAsFactors = F)

vector_a <- names(master)[2:4] 
vector_b <- names(master)[11:18]
# Such that, you compare every column in vector_a with every column in vector_b 


heatmap_prep <- function(dataframe, vector_a,vector_b){
    dummy <- as.data.frame(matrix(0, ncol=length(vector_a), nrow=length(vector_b)))
    for (i in 1:length(vector_a)){
                first_value <- dataframe[[ vector_a[i]  ]]
                # print(first_value)
            for(j in 1:length(vector_b)){
                    second_value <- dataframe[[ vector_b[j] ]]
                    # print(second_value)
                    result <- cor(first_value, second_value)
                    dummy [i,j] <- result
            }
        }
        return(as.matrix(dummy))
    }

heatmap_data_matrix1 <- heatmap_prep(master,vector_a, vector_b) 

它一直工作到 "return",但是当我 运行 函数 "heatmap_prep" 它 returns 一堆 NA 时。我希望它用所有相关性填充整个矩阵。

我哪里做错了?

非常感谢。

dummy 的形状错误 - 列和行在 dummy [i,j] <- result

中的分配方式颠倒了

如果您更改为

,这应该会起作用
  dummy <- as.data.frame(matrix(0, nrow=length(vector_a), ncol=length(vector_b)))