Я пытаюсь создать динамический сетевой график соавторства в Gephi из данных .csv, которые я предварительно обрабатываю в R с помощью igraph и rgefx.
Мои необработанные данные поступают в виде списка ДОКУМЕНТОВ(Doc), идентифицируемый номером (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 и, наконец, написать файл .gefx для использования в нем Gephi, используя следующий код:
#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)
Теперь у меня возникла проблема.Я могу использовать этот же подход, чтобы поместить даты в АВТОРСКИЕ УЗЛЫ, но я не могу понять, как применять даты к EDGES (которые действительно являются датами, это дата представления документа.
И как только данные проходят этап "xtabs (~ Author + Doc, dat)", а затем этап tcrossprod (dat2), похоже, он теряет связь между DOC и SUBMISSIONDATE.
Я счастлив иметь «EndDate» от 01.06.2009 для всех точек данных, поскольку все Документы переходят в бесконечность.
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)
В конечном итоге мне нужен объект DYNAMIC Graph для Gephi, который имеетАтрибуты даты сдачи для EDGES , а не только для узлов.
Если бы я мог получить ДИНАМИЧЕСКИЙ ОБЪЕКТ ГРАФИКА, это было бы здорово, но если бы я мог получить только файл .gexf сКРАТКИЕ АТРИБУТЫ даты представления Я могу работать с этим в Gephi.
Спасибо!