从矩阵中提取行和列名称及其值

时间:2019-04-22 09:42:34

标签: r csv matrix row col

我的矩阵就是这样-

          MU101188  MU101310    MU101326    MU10251
MU101188    1        0.506       -0.006     -0.006
MU101310   -0.006       1        -0.006     -0.006
MU101326  -0.006    -0.006            1     -0.006
MU10251   -0.006    -0.006        0.806         1

我需要提取其值大于或等于0.5的所有对。我正在使用以下R脚本,该脚本为我提供了行和列的名称,但我也希望包含其值的第三列

Pmatrix = read.csv ("file.csv", header= TRUE, row.names = 1)
sig_values <- which(Pmatrix>=0.5, arr.in=TRUE)
cbind.data.frame(colIDs = colnames(Pmatrix)[ sig_values[, 1] ],rowIDs = rownames(Pmatrix)[ sig_values[, 2] ] )

1 个答案:

答案 0 :(得分:0)

您可以使用sig_values来子集Pmatrix

cbind.data.frame(colIDs = colnames(Pmatrix)[sig_values[, 1]],
                 rowIDs = rownames(Pmatrix)[sig_values[, 2]], 
                 values = Pmatrix[sig_values])


#    colIDs   rowIDs values
#1 MU101188 MU101188  1.000
#2 MU101188 MU101310  0.506
#3 MU101310 MU101310  1.000
#4 MU101326 MU101326  1.000
#5  MU10251 MU101326  0.806
#6  MU10251  MU10251  1.000