R & Géphi :les bords d'un réseau ne sont pas correctement importés à l'aide du package rgexf

StackOverflow https://stackoverflow.com//questions/22026659

  •  21-12-2019
  •  | 
  •  

Question

J'ai un problème avec le package R "rgexf".En particulier, j'ai un problème avec le bords du réseau que j'importe dans Gephi.En R, je peux produire une base de données de sommets

>vertices
   Id Label
1   1     1
2   2     2
3   3     3
4   4     4
5   5     5
6   6     6
7   7     7
8   8     8
9   9     9
10 10    10

et une base de données d'arêtes (une seule arête pour être précis)

>edges 
      Source Target
    1      5      9

Je crée un fichier .gexf en utilisant

  >write.gexf(output = path_gexf, nodes = vertices, edges = edges,  defaultedgetype = "undirected")

path_gexf est simplement le chemin du fichier de sortie (appelé exemple.gexf).
J'ouvre example.gexf en utilisant Gephi (version 0.8.2 bêta).Dans l'image 1 :enter image description here

vous pouvez voir le rapport d'importation dans Gephi :le nombre de sommets et d'arêtes est correct ;Je change manuellement le type de graphique en non orienté et j'importe toutes les données dans la fenêtre Data Laboratory.

  1. question 1. Pourquoi suis-je censé spécifier « non dirigé » dans la fenêtre du rapport d'importation si je l'ai déjà fait dans la fonction write.gexf ?

Dans l'image2

enter image description here

vous pouvez constater qu'après l'import, le type de graphique passe automatiquement en "orienté" et aucun bord n'est réellement importé.

Dans l'image 3

enter image description here

on a la liste des sommets :tout est bon.Les étiquettes et les identifiants sont correctement importés.Dans l'image 4

enter image description here

vous pouvez voir la fenêtre Data Laboratory pour les bords :aucun bord n'est importé, comme déjà noté dans l'image 2.Je ne comprends vraiment pas pourquoi aucun bord n'est importé.

  1. Question 2.Comment corriger l'import du fichier exemple.gexf ?Au niveau du code R, tout est fluide, et les sommets/arêtes sont correctement générés par mon code.Des problèmes surviennent avec Gephi.

Remarques:J'ai beaucoup de fichiers .gexf avec des problèmes concernant l'importation des bords ;dans de nombreux cas, seules quelques arêtes sont importées avec des "Source" et "Target" incorrectes.Curieusement, les arêtes parallèles sont toujours correctement comptées en fonction de leurs multiplicités.

Je m'excuse pour le long message.

MODIFIER:quelques tests avec du code R factice

J'ai fait quelques tests en utilisant le code de @James Tobin (merci !).Cela fonctionne très bien également sur mon PC.J'ai fait des tests avec des graphiques à 2 arêtes :les tests étaient tous ok.Ensuite je suis passé aux cas à 3,4 bords, en utilisant

require(rgexf)
vertices <- as.data.frame(cbind(seq(1,10),seq(1,10)))
colnames(vertices) <- c('Id','Label')
edges <- as.data.frame(cbind(c(5,1,2),c(1,1,3)))
colnames(edges) <- c('Source','Target')
write.gexf(nodes=vertices,edges=edges,
           defaultedgetype = "undirected")

et

require(rgexf)
vertices <- as.data.frame(cbind(seq(1,10),seq(1,10)))
colnames(vertices) <- c('Id','Label')
edges <- as.data.frame(cbind(c(5,1,4,2),c(2,3,1,2)))
colnames(edges) <- c('Source','Target')
write.gexf(nodes=vertices,edges=edges,
           defaultedgetype = "undirected")

Dans les deux cas, le code XLM est correct par rapport àles identifiants des nœuds et des bords, les étiquettes, les sources et les cibles.

Où sont les problèmes ?Dans le cas des 3 arêtes, le rapport d'importation dans Gephi est correct, tandis que la fenêtre périphérique du laboratoire de données n'affiche pas l'arête.

<edge id="1" source="1" target="1" weight="1.0"/>

Dans le cas des 4 bords, le bord

 <edge id="0" source="5" target="2" weight="1.0"/>

manque, à la place.

Je commence à croire qu'il y a un bug dans Gephi 0.8.2 et non dans mon code.

Une suggestion/commentaire ?

Était-ce utile?

La solution

Question 1:Même si vous avez déjà spécifié le graphique comme non orienté dans le fichier gexf, dirigé est la valeur par défaut, même si cliquer dessus est un peu ennuyeux, au moins ce n'est pas si grave.Du point de vue de la sécurité, il est plus facile de permettre à un utilisateur de vérifier le type de graphique qu'il importe plutôt que de le sélectionner de manière incorrecte.Cela prend 2 secondes, ce n’est pas si grave.

Question 2:J'ai copié ton exemple

require(rgexf)
vertices <- as.data.frame(cbind(seq(1,10),seq(1,10)))
colnames(vertices) <- c('Id','Label')
edges <- as.data.frame(cbind(5,9))
colnames(edges) <- c('Source','Target')
write.gexf(output='testgex.gexf',nodes=vertices,edges=edges,
          defaultedgetype = "undirected")

mais je n'ai aucun problème avec les bords.enter image description here enter image description here enter image description here

Peut-être pouvez-vous inclure votre code exact qui échoue ?Peut-être que vos bords ne sont pas sous forme data.frame ?Je suppose juste parce que je n'ai pas pu reproduire votre erreur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top