R:igraph,graph.data.frame错误"边列表中的一些顶点名称未在顶点数据框中列出"

时间:2017-03-14 14:37:44

标签: r igraph

我正在尝试将属性分配给网络中的顶点。我正在使用的代码是:

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中运行了合并功能,并且每个观察都来自edgelist2014nodelabels2014。请让我知道我做错了什么。

2 个答案:

答案 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)

数据 D1-EDGES.csv D1-NODES.csv

# 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 )

我收到此错误消息:

<块引用>

边列表中的某些顶点名称未在顶点数据框中列出