R - сопоставление строк и столбцов матриц разной длины

моя проблема на данный момент заключается в следующем. У меня есть направленный 1-mode edgelist, представляющий пары актеров, участвующих в совместных проектах в течение определенного года, который может выглядеть следующим образом:

projektleader   projectpartner  year
A               B               2005
A               C               2000
B               A               2002
...             ...             ...

Теперь мне нужно только подмножество для одного конкретного года. Не все актеры активны в течение года, поэтому размеры подмножеств различны. Для следующего сетевого анализа мне нужна взвешенная и направленная матрица смежности, поэтому я использую опцию [сетевой пакет] для ее создания. Сначала я загружаю его как сетевой объект и затем преобразую в матрицу смежности.

grants_00 <- subset(grants, (year_grant=2000), select = c(projectpartner, projectleader))
nw_00 <- network(grants_08to11[,1:2], matrix="edgelist", directed=TRUE) 
grants_00.adj <- as.matrix(nw_00, matrix.type = "adjacency")

Полученная матрица выглядит как

     A    B    C    E    ...
A    0    1    1    0
B    1    0    0    0
...

Все идет нормально. Моя проблема сейчас: для дальнейшего анализа, который я планирую сделать, мне нужна Матрица смежности для каждого года с одинаковым измерением и порядком. Это означает, что все действующие лица из исходного набора данных должны быть именами строк и столбцов матрицы для соответствующих лет, но матрица должна содержать только наблюдаемые пары для этого определенного года. Я надеюсь, что моя проблема ясна. Я ценю любые конструктивные решения.

Моя идея ATM заключается в следующем: я создаю матрицу исходного набора данных и сокращенного набора данных. Затем я установил все значения матрицы в ноль. Затем я как-то сопоставляю его с уменьшенной матрицей и заполняю его правильными значениями в правильных строках и столбцах. К сожалению, я понятия не имею, как это возможно.

Кто-нибудь знает, как решить эту проблему?

Ответы на вопрос(1)

Ваш ответ на вопрос