R: пакет sna (анализ социальных сетей): фрейм данных в матрицу смежности

Я надеюсь на дополнительную помощь в трансформации. Скажем, у меня есть фрейм данных:

df = data.frame(source = c("a","a","b"), 
                target = c("b","c","d"), 
                weight = c(1,1,1))

где строка: source = i | target = j | weight = w обозначает направленное ребро веса w от узла i к узлу j. Учитывая произвольный фрейм данных этой формы, я ищу процедуру для исследования компонентов индуцированного графа G. Прочитав мой комментарий Бена по этому вопросу:

R: Gephi: управление фреймом данных для использования с write.gexf

Я проверил пакет sna, в котором, похоже, есть то, что я искал, в виде функции component.dist. Итак, мой вопрос: «Как я могу преобразовать свой фрейм данных в подходящую форму для аргумента dat функции component.dist (или есть более« оптимальный »способ решения этой проблемы?)» Я попробовал следующий код:

xtabs(weight ~ source + target, data = df)

но у этого есть очевидные недостатки (например, он не формирует матрицу nrow(df) на nrow(df)).

Спасибо за любую помощь.


person user32259    schedule 29.04.2013    source источник


Ответы (1)


Я не нашел этого результата при первом поиске в Интернете по вышеуказанному вопросу, однако я только что наткнулся на него сейчас:

Как рассчитать матрицы смежности в R

На первый взгляд кажется, что это отвечает на мой вопрос.

person user32259    schedule 29.04.2013