我正在尝试用这些数据点建立一个网络。我将它们组织起来,以便资源到达正确的目标。但是,我运行时遇到错误,
library(igraph)
links <- data.frame(
source=c("P","P","P","P","G","G","T","T","N","N","B","B","S","S","O","D"),
target=c("G","B","S","D","T","D","N","D","R","D","R","D","B","E","E","E"),
importance=(sample(1:4, 16, replace=T))
)
nodes <- data.frame(
name=LETTERS[1:10],
carac=c( rep("bio",2),rep("affective",3),rep("cog",3),rep("neg",2))
)
network <- graph_from_data_frame(d=links, vertices=nodes, directed=F)
我遇到的错误发生在最后一行。它说
graph_from_data_frame(d = links, vertices = Nodes, dependent = F) 中的错误:边列表中的某些顶点名称未在顶点数据框中列出
我不明白我的顶点数据框出了什么问题。我也不知道它所指的“边缘列表”是什么。任何帮助调试将不胜感激!
这是来自 r-graph-gallery 的基本代码,我将数据插入其中。它应该创建一个具有链接和节点的网络。我不明白替换或重要性指的是什么,网站上也没有解释。这就是基础数据的样子。
library(igraph)
links <- data.frame(
source=c("A","A", "A", "A", "A","J", "B", "B", "C", "C", "D","I"),
target=c("B","B", "C", "D", "J","A","E", "F", "G", "H", "I","I"),
importance=(sample(1:4, 12, replace=T))
)
nodes <- data.frame(
name=LETTERS[1:10],
carac=c( rep("young",3),rep("adult",2), rep("old",5))
)
network <- graph_from_data_frame(d=links, vertices=nodes, directed=F)
最佳答案
library(igraph)
links <- data.frame(
source=c("P","P","P","P","G","G","T","T",
"N","N","B","B","S","S","O","D"),
target=c("G","B","S","D","T","D","N","D",
"R","D","R","D","B","E","E","E"),
importance=(sample(1:4, 16, replace=T)) )
V = c(links$source,
links$target) %>%
unique()
nodes <- data.frame( name=V,
carac=c(
rep("bio",2),rep("affective",3),rep("cog",3),rep("neg",2)) )
network <- graph_from_data_frame(d=links, vertices=nodes, directed=F)
plot(network)
您需要确保所有节点 ID 都存在于节点数据框中。它们应该是链接df中存在的所有节点。
关于r - Rstudio 使用 igraph 的网络错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65332676/