我正在尝试为网络中的顶点分配属性。我使用的代码是:
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
相匹配。请让我知道我做错了什么。
我有同样的问题,但似乎不适用于非数字数据。我想制作一个显示演员联系的 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 )
我收到此错误消息:
边列表中的某些顶点名称未在顶点数据框中列出
我已经遇到这个问题并通过制定以下建议解决了它:
最初,尝试在网络的传出和传入变量中插入非数字字符,分别称为“fromRespondent”和“toRespondent”。插入 s01, s02, s03, ... 而不是 1, 2, 3, ...
如果错误仍然存在,请检查您的数据集“edgelist2014”和“nodelabels2014”是否一致。例如,查看“nodelabels2014”中所有对应的顶点作为“edgelist2014”中形成的边。
由于您的“edgelist2014”数据集有大约 514,000 个示例,对于“fromRespondent”和“toRespondent”列,如果缺少某些内容并且“nodelabels2014”数据集中存在这些元素中的每一个,您将更成功地实施验证.