Быстрая жадность на графических объектах - PullRequest
0 голосов
/ 10 сентября 2018

Итак, я прочитал данные своей сети в CSV-файле и превратил их в объект графа, выполнив следующую команду:

g = read.csv"somefile.csv", header = FALSE)
G = graph.data.frame(g,directed=FALSE)
fc = cluster_fast_greedy(G)

Error in cluster_fast_greedy(G) : 
At fast_community.c:639 : fast-greedy community finding works only on graphs 
without multiple edges, Invalid value

Очень интересно, я попытался загрузить версию GraphML напрямую и могу запустить функцию fast greedy без ошибок.

У меня вопрос: если я ограничен только csv-файлом, как я могу запустить на нем функцию fast_greedy?

1 Ответ

0 голосов
/ 10 сентября 2018

Как говорится в сообщении об ошибке,

быстрое нахождение жадных сообществ работает только на графиках без нескольких ребер

Но вы можете удалить несколько ребер, используя функцию simplify. Вот пример. Сначала я создаю график с несколькими ребрами - на котором fastgreedy.community терпит неудачу. Но после упрощения это работает.

set.seed(1234)
g = erdos.renyi.game(12, 0.3)
g = add_edges(g, c(1,5, 7,10))
fastgreedy.community(g)
Error in .Call("R_igraph_community_fastgreedy", graph, as.logical(merges),  : 
  At fast_community.c:553 : fast-greedy community finding works 
  only on graphs without multiple edges, Invalid value

g = simplify(g)
fastgreedy.community(g)
IGRAPH clustering fast greedy, groups: 2, mod: 0.26
+ groups:
  $`1`
  [1]  1  3  4  5  9 10 11

  $`2`
  [1]  2  6  7  8 12
...