Как изменить вес матрицы смежности в соответствии со значениями фрейма данных? - PullRequest
0 голосов
/ 02 мая 2018

У меня есть взвешенная матрица смежности, как показано ниже:

adj<-read.table(text="    a_fgh   c_dfg   l_opu
a_fgh   0   3.3 5.6
                c_dfg   3.3 0   8.5
                l_opu   5.6 8.5 0",
                header=TRUE)
adjMat<-as.matrix(adj)

У меня также есть таблица, которая выглядит следующим образом:

    table<-read.table(text="name1   name2    (3,4.5)     (4.5,6)     (6,7.5)     (7.5,9)
fgh_a   opu_l   10  -31 75  -69
fgh_a   dfg_c   45  60  30  33  38
dfg_c   opu_p   75  57  40  22  -63
opu_l   dfg_c   -69 -56 78  96  78
",
                    header=TRUE)

Я хочу изменить вес моей матрицы смежности в соответствии с верхней таблицей. Например, a_fgh взаимодействует с l_opu, и его вес равен 5.6.

Однако в соответствии с таблицей значение веса ребра между a_fgh и l_opu, если находится в диапазоне от 4,5 до 6, должно быть -6. При этом матрица смежности будет такой:

adj2<-read.table(text="     a_fgh   c_dfg   l_opu
    a_fgh   0   60  -6
                  c_dfg 60  0   8.5
                  l_opu -6  78  0",
                header=TRUE)
adjMat2<-as.matrix(adj)
...