R - Übereinstimmende Reihen und Spalten von Matrizen mit unterschiedlicher Länge

mein problem im moment ist folgendes. Ich habe eine gezielte 1-Mode-Edgelist, die Schauspielerpaare darstellt, die in einem bestimmten Jahr an gemeinsamen Projekten teilnehmen. Dies könnte folgendermaßen aussehen:

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

Jetzt brauche ich nur noch eine Untermenge für ein bestimmtes Jahr. Nicht alle Schauspieler sind in einem Jahr aktiv, daher unterscheiden sich die Dimensionen der Untergruppen. Für eine nachfolgende Netzwerkanalyse benötige ich eine gewichtete und gerichtete Adjazenzmatrix, daher benutze ich die Option des [Netzwerkpakets], um es zu erstellen. Ich lade es zuerst als Netzwerkobjekt und transformiere es dann in eine Adjazenzmatrix.

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")

Die resultierende Matrix sieht ungefähr so ​​aus

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

So weit, ist es gut. Mein Problem ist nun: Für die weitere Analyse benötige ich für jedes Jahr eine Adjazenzmatrix mit der gleichen Dimension und Reihenfolge. Das bedeutet, dass alle Akteure aus dem ursprünglichen Datensatz die Zeilen- und Spaltennamen der Matrix für die entsprechenden Jahre sein müssen, die Matrix jedoch nur beobachtete Paare für dieses bestimmte Jahr enthalten sollte. Ich hoffe mein Problem ist klar. Ich schätze jede Art von konstruktiven Lösungen.

Meine Idee ATM ist die folgende: Ich erstelle eine Matrix aus dem ursprünglichen Datensatz und dem reduzierten Datensatz. Dann setze ich dort alle Matrixwerte auf Null. Dann passe ich es irgendwie an die reduzierte Matrix an und fülle es mit den richtigen Werten in den richtigen Zeilen und Spalten. Leider habe ich keine Ahnung, wie das möglich sein könnte.

Hat jemand eine Idee, wie man dieses Problem löst?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage