我有矩阵文件,基本上是跨不同细胞类型的基因之间的spearman相关矩阵。所以现在我试图找出哪一组基因或一组相关值大于0.6的基因,如果我设定这个阈值的话。我怎么能这么做?我在张贴我的数据子集。这是一个502 x 502矩阵。
ACTL6B ACTR5 ACTR6
ACTL6B 1 0.6 -0.4
ACTR5 0.4 1 -0.3
ACTR6 -0.4 -0.3 1所以我不想要同一组基因之间的相关性,那就是1,我想要另一种比较。比方说,ACTL6B和ACTR5的相关性是0.6。我想保留这些价值观和基因。
发布于 2017-08-01 11:25:39
下面是一个示例:
mat <- cor(longley) # example 7 x 7 correlation matrix
# Find indices of correlations greater than 0.6
idx <- which(mat > 0.6 & lower.tri(mat), arr.ind = TRUE)
# names of the resulting variables
cbind(rownames(idx), colnames(mat)[idx[, 2]])由于lower.tri的存在,对角和上矩阵的所有值都被忽略了。
结果:
[,1] [,2]
[1,] "GNP" "GNP.deflator"
[2,] "Unemployed" "GNP.deflator"
[3,] "Population" "GNP.deflator"
[4,] "Year" "GNP.deflator"
[5,] "Employed" "GNP.deflator"
[6,] "Unemployed" "GNP"
[7,] "Population" "GNP"
[8,] "Year" "GNP"
[9,] "Employed" "GNP"
[10,] "Population" "Unemployed"
[11,] "Year" "Unemployed"
[12,] "Year" "Population"
[13,] "Employed" "Population"
[14,] "Employed" "Year" https://stackoverflow.com/questions/45436336
复制相似问题