Я пытаюсь преобразовать социоматрицу (используя пакет sna в r) в список ребер, но сохраняю имена вершин. К сожалению, я, похоже, зашел в тупик.
Для контекста я использую пакет sna, потому что мне нужно симметризовать данные, что я делаю, прежде чем переводить их в формат edgelist. По сути, мне нужно взять сетевую матрицу, симметризовать ее, превратить в список краев, а затем записать в .csv. Это шаг преобразования его в список краев, где я сталкиваюсь с проблемой. Вот пример того, с чем я сталкиваюсь:
library(sna)
testmat <-rgraph("6")
colnames(testmat) <- c("153","154", "155", "156", "157", "158")
rownames(testmat) <- c("153","154", "155", "156", "157", "158")
maxsymmetrizedfile <-symmetrize(testmat, rule = "weak")
rownames(maxsymmetrizedfile) <- rownames(testmat)
colnames(maxsymmetrizedfile) <- colnames(testmat)
as.edgelist.sna(maxsymmetrizedfile)
maxsymm_edge<-as.edgelist.sna(maxsymmetrizedfile)
Когда я делаю это, вот что я получаю:
snd rec val
[1,] 2 1 1
[2,] 3 1 1
[3,] 4 1 1
[4,] 5 1 1
[5,] 6 1 1
[6,] 1 2 1
[7,] 3 2 1
[8,] 5 2 1
[9,] 1 3 1
[10,] 2 3 1
[11,] 4 3 1
[12,] 5 3 1
[13,] 6 3 1
[14,] 1 4 1
[15,] 3 4 1
[16,] 6 4 1
[17,] 1 5 1
[18,] 2 5 1
[19,] 3 5 1
[20,] 1 6 1
[21,] 3 6 1
[22,] 4 6 1
Когда мне действительно нужны имена (" 153 "," 154 "," 155 "," 156 "," 157 "," 158 ") вместо 1-6.
(Фактический список матрицы / ребер будет другим, когда вы запустите код, потому что график генерируется случайным образом, но он должен делать то же самое)
Есть ли у вас какие-либо предложения относительно того, что мне нужно сделать, чтобы сделать эту работу? В прошлом я использовал пакеты network и igraph, но когда я конвертирую социоматрицу в объект графа / сети и пытаюсь использовать другие пакеты для преобразования в список краев, я получаю другие ошибки (возникают проблемы при передаче аргумента «n»). ).