在R

时间:2019-06-02 17:55:29

标签: r igraph gephi

我正在尝试根据.csv数据在Gephi中创建一个共同创作的动态网络图,我使用igraph和rgefx在R中对其进行了预处理。

我的原始数据以由数字(1,2,3,4 ...)和作者标识的文档(文档)列表以及作者所在城市和文档提交日期的形式出现。

第一步是使用以下代码创建我在R(版本3.4.0)中执行的入射矩阵:

    library(igraph)
    library(rgexf)
    options(stringsAsFactors=FALSE)           #make sure that countries shows up as characters for the nodes
    dat<-read.csv(file.choose(),header=TRUE,encoding="UTF-8")  
    #read in the raw data
    dat2<-xtabs(~Author+Doc,dat)    
    mat<-tcrossprod(dat2)
    g<-graph.adjacency(mat,mode="undirected")  #creates graph object for undirected graph

然后,我可以添加NODE属性,并最终使用以下代码编写一个供Gephi使用的.gefx文件:

    #Time to Link "City" to "Author"
    ix<-match(V(g)$name,node$Author)
    V(g)$city<-node$AuthorCity[ix]
set.vertex.attribute(graph=g,name='city',value=node$AuthorCity[ix])
    g2<-simplify(g,remove.loops=TRUE,remove.multiple = FALSE)   
    #Remove Loops from Dataset, keep duplicates
    network.gexf<-igraph.to.gexf(g2)
    f<-file("network_author.gexf")
    writeLines(network.gexf$graph,con=f)

现在我的问题出现了。我可以使用相同的方法在AUTHOR NODES上放置日期,但是我无法弄清楚如何将日期应用于EDGES(实际上是带有日期的东西,这是文档提交的日期。

一旦数据经过“ xtabs(〜Author + Doc,dat)步骤,然后经过tcrossprod(dat2)步骤,它似乎就失去了DOC与SUBMISSIONDATE之间的连接。

我很高兴所有数据点的“截止日期”为6/1/2019,因为所有文档都将永久保留。

library(rgexf)
options(stringsAsFactors=FALSE)           #make sure that countries shows up as characters for the nodes
dat<-read.csv(file.choose(),header=TRUE,encoding="UTF-8")  #read in the raw data
dat2<-xtabs(~Author+Doc,dat)    
mat<-tcrossprod(dat2)
g<-graph.adjacency(mat,mode="undirected")  #creates graph object for undirected graph
#Time to Link "City" to "Author"
ix<-match(V(g)$name,node$Author)
V(g)$city<-node$AuthorCity[ix]
set.vertex.attribute(graph=g,name='city',value=node$AuthorCity[ix])
g2<-simplify(g,remove.loops=TRUE,remove.multiple = FALSE)   #Remove Loops from Dataset, keep duplicates
network.gexf<-igraph.to.gexf(g2)
f<-file("network_author.gexf")
writeLines(network.gexf$graph,con=f)

最终,我想要Gephi的动态图对象,该对象具有 edge 的提交日期属性,而不仅仅是NODES。

如果我能得到一个很棒的动态图形对象,但是如果我能得到的只是带有提交日期的EDGE ATTRIBUTES的.gexf文件,那么我可以在Gephi中使用它。

谢谢!

0 个答案:

没有答案