R: agregue matrices basadas en nombres de fila y columna

Tengo dos matrices que quiero sumar en función de sus nombres de fila y columna. Las matrices no necesariamente tendrán todas las filas y columnas en común; algunas pueden faltar en cualquiera de las matrices.

Por ejemplo, considere dos matrices A y B:

A=                 B=
  a b c d            a c d e
v 1 1 1 0          v 0 0 0 1
w 1 1 0 1          w 0 0 1 0
x 1 0 1 1          y 0 1 0 0
y 0 1 1 1          z 1 0 0 0

Falta la columna e en la matriz A y falta la columna b en la matriz B. Falta la fila z en la matriz A y falta la fila x en la matriz B.

La tabla resumida que estoy buscando es:

Sum=
  a b  c d e
v 1 1  1 0 1
w 1 1  0 2 0
x 1 0  1 1 na
y 0 1  2 1 0
z 1 na 0 0 0

El orden de las filas y columnas en la matriz final no importa, siempre que la matriz esté completa, es decir, tenga todos los datos. Los valores faltantes no tienen que ser "Na", sino que podrían ser "0".

No estoy seguro de si hay una manera de hacer esto que no implique bucles. Cualquier ayuda sería muy apreciada.

Mi solución

Logré hacer esto fácilmente convirtiendo las matrices en marcos de datos, uniendo los marcos de datos por fila y luego volviendo a convertir el marco de datos resultante en una matriz. Parece que funciona, pero tal vez alguien podría verificar o avisarme si hay una mejor manera.

library(reshape2)
A_df=as.data.frame(as.table(A))
B_df=as.data.frame(as.table(B))

merged_df=rbind(A_df,B_df)

Summed_matrix=acast(merged_df, Var1 ~ Var2, sum)

merged_df se ve así:

   Var1 Var2 Freq
1     v    a    1
2     w    a    1
3     x    a    1
4     y    a    0
5     v    b    1
6     w    b    1
etc...

Respuestas a la pregunta(1)

Su respuesta a la pregunta