r - 重复顶点 ID R
问题描述
我正在尝试制作网络可视化,以便从经理调用活动到存储位置。唯一的问题是我不断收到错误“重复的顶点 ID”。我需要有多个相同的顶点 ID,因为一位经理已经调用了多个商店。我该如何解决这个问题?
我的边缘数据组织如下:
from to weight
12341 1 5
12341 2 4
23435 1 3
我的节点数据仅包括 from 列:
from
12341
12341
23435
这是我试图运行的代码:
MANAGER_LOC <- graph_from_data_frame(d = edges, vertices = nodes,
directed = TRUE)
解决方案
您收到重复的顶点 ID 错误,因为您需要在vertices =
. 您可以使用unique(nodes)
,但这会给您带来另一个错误,因为您在邻接列表中引用的节点1
和2
数据不包含在您的nodes
数据中。
您的节点数据不仅包括来自 column 的唯一值edges$from
,还必须包括来自edges$from
and的所有唯一值edges$to
,因为您将邻接列表数据传递给graph_from_data_frame()
函数。
因此,edges$to
您还需要按名称引用顶点edges$from
,例如12341
或23435
。
这是一些 R 代码,可能包括您想要实现的目标。
#graph from your data frame
MANAGER_LOC <- graph_from_data_frame(
d = edges
,vertices = unique(c(edges$from, edges$to))
,directed = TRUE);
#plot also includes vertices 1 and 2
plot(
x = MANAGER_LOC
,main = "Plot from your edges data");
#plot from your data assuming you are referencing an id in edges$to
MANAGER_LOC <- graph_from_data_frame(
d = merge(
x = edges
,y = data.frame(
to_vertice_id = 1:length(unique(edges$from))
,to_vertice = unique(edges$from))
,by.x = "to"
,by.y = "to_vertice_id"
,all.x = T)[,c("from","to_vertice","weight")]
,vertices = unique(edges$from)
,directed = TRUE);
#plot does not include vertices 1 and 2
plot(
x = MANAGER_LOC
,main = "Plot assuming vertice ID
reference in edges$to");
#plot from your data assuming you are referencing the xth value of edges$from in edges$to
MANAGER_LOC <- graph_from_data_frame(
d = merge(
x = edges
,y = data.frame(
to_vertice_ref = 1:nrow(edges)
,to_vertice = edges$from)
,by.x = "to"
,by.y = "to_vertice_ref"
,all.x = T)[,c("from","to_vertice","weight")]
,vertices = unique(edges$from)
,directed = TRUE);
#plot does not include vertices 1 and 2
plot(
x = MANAGER_LOC
,main = "Plot assuming edges$from
reference in edges$to");
推荐阅读
- laravel - {!!Html::style('css/parsley.css') !!} 不工作
- python - 为 DNS 更新生成 TSIG 密钥环(作为编码的字节字符串)
- roku - Roku 中 WebView 的概念
- javascript - 将值传递给搜索栏
- scala - Spark 1.6 和 Spark 2.2 中不同的类似行为
- c# - 使用 Identity Core 中的角色进行 JWT 授权
- typescript - 使用 Code First 方法在 Nestjs 中创建突变
- android - 通过查询在mongodb中获取对象值
- java - 我怎样才能在java中修复这个星星金字塔
- python - 没有 pip 命令适用于 ubuntu