Как удалить изоляты в моей сети в R? - PullRequest
0 голосов
/ 30 января 2019

У меня есть матрица ("g"), и я пытаюсь удалить изоляты (неподключенные узлы).Я попытался использовать delete_isolates (g) в пакете hierformR, и я попытался использовать в пакете corpustools.

Оба раза я получал сообщение об ошибке: Ошибка в delete_isolates (g): не удалось найти функцию "delete_isolates"

Как удалить не связанные узлы из моей матрицы?

1 Ответ

0 голосов
/ 30 января 2019

Рекомендуется включать минимальный воспроизводимый пример ваших данных.Отметьте Как создать великолепный воспроизводимый R-пример

С пакетом igraph вы и следующий пример матрицы g

library(igraph)
g <-structure(c(0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0), .Dim = c(5L, 5L), .Dimnames = list(NULL, 
    NULL))

преобразуете свою матрицу в графикобъект

g.old <- graph.adjacency(g, mode = "undirected", diag = FALSE)

и удаление узлов со степенью 0

g.new <- delete.vertices(g.old , which(degree(g.old)==0))
...