R & Gephi: i bordi in una rete non sono importati correttamente utilizzando il pacchetto RGEGEXF

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

  •  21-12-2019
  •  | 
  •  

Domanda

Ho un problema con il pacchetto R "rgexf". In particolare, ho un problema con i bordi della rete che importa a Gephi. In r i posso produrre un database di vertici

>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
.

e un database di bordi (un singolo bordo deve essere preciso)

>edges 
      Source Target
    1      5      9
.

Creo un file .gexf usando

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

Dove path_gexf è solo il percorso del file di output (che si chiama ESEMPIO.GEXF).
Apri esempio.gexf usando Gephi (versione 0.8.2 beta). Nell'immagine 1: Inserisci Descrizione dell'immagine qui

È possibile visualizzare il report di importazione in Gephi: il numero di vertici e bordi è corretto; Modo manualmente il tipo di grafico per non rilevato e imporco tutti i dati nella finestra di laboratorio di dati.

    .
  1. Domanda 1 . Perché dovrei specificare "Nonreted" nella finestra del report di importazione se l'ho già fatto nella funzione Write.gexf?
  2. in Image2

    Inserisci Descrizione dell'immagine qui

    È possibile vedere che, dopo l'importazione, il tipo di grafico si interrompe automaticamente su "Diretto" e No Edge è effettivamente importato.

    IN IMMAGINE 3

    Inserire l'immagine Descrizione qui

    Abbiamo la lista dei vertici: tutto va bene. Le etichette e gli ID sono importate correttamente. IN Immagine 4

    Inserire la descrizione dell'immagine qui

    È possibile visualizzare la finestra di laboratorio di dati per i bordi: nessun bordo è importato, come già indicato nell'immagine 2. Io davvero non capisco perché nessun bordo è importato.

    1. Domanda 2. Come correggere l'importazione del file example.gexf? A livello di codice R, tutto è liscio, e i vertici / i bordi sono generati correttamente dal mio codice. I problemi si verificano con Gephi.
    2. Note: Ho un sacco di file .gexf con problemi riguardanti l'importazione di bordi; In molti casi, solo pochi bordi vengono importati con "sorgente" e "bersaglio" incredibile. Stranamente, i bordi paralleli sono sempre contati correttamente in base alle loro molteplicità.

      Mi scuso per il lungo post.

      Modifica: alcuni test con fittizio codice R

      Ho fatto alcuni test usando il codice di Tobin di @James (grazie!). Funziona bene anche sul mio PC. Ho effettuato test con grafici con 2 bordi: i test erano tutti ok. Quindi mi sono trasferito nei 3,4 casi dei bordi, usando

      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")
      
      .

      e

      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")
      
      .

      In entrambi i casi il codice XLM è corretto w.r.t. I nodi e i bordi ID, etichette, fonti e bersagli.

      Dove sono i problemi? Nella custodia a 3 bordi il report di importazione in Gephi è corretto, mentre la finestra del bordo del laboratorio dei dati non mostra il bordo

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

      Nelle 4 bordi case il bordo

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

      manca, invece.

      Inizio a credere che ci sia un bug in Gephi 0.8.2 e non nel mio codice.

      Qualsiasi suggerimento / commento?

È stato utile?

Soluzione

Domanda 1: Anche se hai già specificato il grafico come non rilevato nel file GEXF, diretto è il valore predefinito, anche se cliccarlo è un po 'fastidioso, almeno non è così grande.Da una prospettiva di sicurezza, è più facile consentire a un utente di ricontrollare il tipo di grafico che stanno importando rispetto a potenzialmente selezionare in modo errato.Ci vogliono 2 secondi, non così grande di un accordo.

Domanda 2: Ho copiato il tuo esempio

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")
.

Ma non ho problemi con i bordi. Inserire la descrizione dell'immagine qui Inserire la descrizione dell'immagine qui Inserire l'immagine Descrizione qui

Forse puoi includere il tuo codice esatto che fallisce?Forse i tuoi bordi non sono in Data. FORMA DA DATA.Solo indovinando perché non ho potuto replicare il tuo errore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top