Matriz de interação de pares em R

Eu estou tentando calcular uma matriz de pares em R que conta o número de vezes que os indivíduos interagem com outros indivíduos (então a matriz incluirá N número de linhas e colunas correspondente ao número de indivíduos). Eu tenho um dataframe que lista "atores" e "parceiros" em colunas separadas.

nn <- data.frame(actors=c('DOL','DOL','DOL','DOL','DOL','NOR','NOR','NOR','NIN','JOJ'),partners=c('JOJ','JOJ','NOR','NOR','NIN','NIN','DOL','JOJ','NOR','NOR'))

Os dados são tais que a direção da interação é irrelevante, portanto cada célula deve contar o número de vezes que o X individual atua em Y mais o número de vezes que Y atua em X. Idealmente, o quadro de dados acima deve fornecer uma matriz semelhante a esta. :

     DOL JOJ NOR NIN
DOL    0   2   3   1
JOJ    2   0   2   0
NOR    3   2   0   2
NIN    1   0   2   0

Comecei a escrever um loop para percorrer cada indivíduo no meu conjunto de dados e para contar as interações dele tanto do ator-> parceiro quanto do parceiro-> ator. Tenho certeza de que isso funcionaria, mas não é ideal, pois o conjunto de dados completo é muito grande. Existe uma maneira melhor?

Atualização: Obrigado pelas respostas! Ambas as soluções funcionam muito bem! Estou postando minha implementação da sugestão de Josh, que foi muito útil.

x <- with(nn, table(actors, partners))
y <- t(x)

# unique individuals
u <- unique(c(rownames(x),colnames(x)))

m <- matrix(0,ncol=length(u),nrow=length(u),dimnames=list(u,u))

i1 <- as.matrix(expand.grid(rownames(x),colnames(x)))
i2 <- as.matrix(expand.grid(rownames(y),colnames(y)))

m[i1] <- x[i1]
m[i2] <- m[i2] + y[i2]

questionAnswers(2)

yourAnswerToTheQuestion