我正在尝试将属性分配给网络中的顶点。我正在使用的代码是:
g2 <- graph.data.frame(edgelist2014, vertices=nodelabels2014, directed=FALSE)
其中edgelist2014是一个边缘列表,其格式为514,000 +:
fromRespondent toRespondent weight
1 2 6
1 3 4
... ... ...
1014 1015 7
和nodelabels2014
是一个数据框,其中第一列为fromRespondent
,列出1 - 1015,后跟14列属性数据。我也试过1 - 1014.
我以多种不同方式运行代码并不断收到错误:
Some vertex names in edge list are not listed in vertex data frame.
我知道所有观察都匹配,因为我在Stata中运行了合并功能,并且每个观察都来自edgelist2014
和nodelabels2014
。请让我知道我做错了什么。
答案 0 :(得分:0)
我已经遇到了这个问题,并通过提出以下建议解决了该问题:
首先,尝试分别在网络的传出和传入变量中分别插入非数字字符,分别称为“ fromRespondent”和“ toRespondent”。插入s01,s02,s03,...,而不是1、2、3,...
如果错误仍然存在,请检查您的数据集“ edgelist2014”和“ nodelabels2014”是否一致。例如,在“ nodelabels2014”中查找作为在“ edgelist2014”中形成的边的所有相应顶点。
由于“ edgelist2014”数据集包含约514,000个示例,因此对于“ fromRespondent”和“ toRespondent”列,如果缺少某些内容,并且在“ nodelabels2014”中存在这些元素中的每个元素,则实现验证会更加成功“数据集。
答案 1 :(得分:0)
我有同样的问题,它似乎不适用于非数字数据。我想制作一个显示演员联系的 igraph。
nodes <- read.csv("D1-NODES.csv", header=T, as.is=T)
links <- read.csv("D1-EDGES.csv", header=T, as.is=T)
数据
# Producing the igraph
net <- graph_from_data_frame(d=links, vertices=nodes, directed=T)
#create a layout for plot
l <- layout_nicely(net2)
p1 <- plot(net2, edge.arrow.size= 0.5, edge.curved= 0.2, vertex.color=nodes$Inter.type, rescale=5, frame= T,vertex.label.cex=1.4, vertex.size=20, vertex.label.color="black",edge.lty= 2, vertex.frame.color= "gray", layout=l )
我收到此错误消息:
<块引用>边列表中的某些顶点名称未在顶点数据框中列出