R:igraph、graph.data.frame 错误“边列表中的某些顶点名称未在顶点数据框中列出”

问题描述 投票:0回答:2

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

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
相匹配。请让我知道我做错了什么。

r igraph
2个回答
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 )

我收到此错误消息:

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


-1
投票

我已经遇到这个问题并通过制定以下建议解决了它:

最初,尝试在网络的传出和传入变量中插入非数字字符,分别称为“fromRespondent”和“toRespondent”。插入 s01, s02, s03, ... 而不是 1, 2, 3, ...

如果错误仍然存在,请检查您的数据集“edgelist2014”和“nodelabels2014”是否一致。例如,查看“nodelabels2014”中所有对应的顶点作为“edgelist2014”中形成的边。

由于您的“edgelist2014”数据集有大约 514,000 个示例,对于“fromRespondent”和“toRespondent”列,如果缺少某些内容并且“nodelabels2014”数据集中存在这些元素中的每一个,您将更成功地实施验证.

© www.soinside.com 2019 - 2024. All rights reserved.