Извлечение имен строк и столбцов с их значением из матрицы - PullRequest
0 голосов
/ 22 апреля 2019

моя матрица такая -

          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-скрипт, который дает мне имя строки и столбца, но я также хочу, чтобы 3-й столбец состоял из его значения

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 голосов
/ 22 апреля 2019

Вы можете использовать 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
...