R cor跨行和列

时间:2014-11-24 04:07:54

标签: r matrix heatmap correlation

您好我目前有一个矩阵,其基因为row.name,Tissue Type为colnames。如果我:

> cor(matrix)
> str(DataCor2)
 num [1:39453, 1:19] 0.502 7.974 33.462 0 14.543 ...
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:39453] "AC205376.4_FG003" "GRMZM2G024563" ...
  ..$ : chr [1:19] "V18_Meotic_TasselR1" "V18_Meotic_TasselR2" ...

我得到组织类型之间的相关性。 我想要做的是获得热图上每种组织类型的基因子集的相关性,我试过:

cor(v,t(v))

但我得到一个错误,说不兼容的尺寸。这是数据的一部分,我希望看到跨组织类型的基因之间表达水平的相关性。热图看起来类似于Y轴上的基因和X轴上的组织。希望它更有意义。

enter image description here

1 个答案:

答案 0 :(得分:2)

假设您希望基于subset genes prefix并在每个cor上执行subset

 res <- lapply(split(1:nrow(mat1), gsub("_.*", "", rownames(mat1))),
                               function(i) cor(mat1[i,]))

数据

set.seed(29)
mat1 <- matrix(sample(0:80, 15*3, replace=TRUE), ncol=3,
   dimnames=list(paste(rep(c('V18', 'V19'), c(8,7)), LETTERS[1:15],
   sep="_"), paste0("AC", 1:3)))