R将egor对象转换为igraph /使用可视化应用程序(错误:重复的顶点名称)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R将egor对象转换为igraph /使用可视化应用程序(错误:重复的顶点名称)相关的知识,希望对你有一定的参考价值。
我想用R的egor包分析自我中心网络。这个软件包包括egor的网络可视化应用程序 - 短egor_vis_app - (使用igraph)。我设法创建一个egor对象,但我不能使用这个应用程序来可视化网络(错误重复顶点名称)或创建一个igraph objext(as_igraph(),相同的错误)。我究竟做错了什么?
到目前为止我尝试过:我使用了预先存在的egor对象(data(“egor32”))和可视化应用程序。
然后,我使用这个预先存在的数据来创建一个egor对象:
data("alters32")
data("egos32")
data("edges32")
e <- egor(alters.df = alters32,
egos.df = egos32,
aaties = edges32,
ID.vars = list(
ego = "egoID",
alter = "alterID",
source = "Source",
target = "Target"))
并且应用程序以及as_igraph(e)函数不起作用(我在使用此数据创建egor对象时遵循此tutorial)。
这是我的示例代码(基于this):
df_new <- read.csv(textConnection('"id","numgiven","sex",
"sex1","sex2","sex3","sex4","sex5","close12",
"close13","close14","close15","close23","close24",
"close25","close34","close35","close45"
10,6,1,2,2,1,2,2,0,0,0,0,0,0,0,1,1,1
36,6,2,2,2,2,1,1,0,0,0,1,0,0,0,1,0,0'
), as.is=TRUE)
e1 <- with(df_new, onefile_to_egor(egos = df_new, pmin(numgiven,5),
ID.vars=list(ego="id"),
attr.start.col="sex1",
attr.end.col="sex5",
max.alters=5,
aa.first.var="close12",
aa.regex="^(?<attr>[[:alpha:]]+)(?<src>[[:digit:]])(?<tgt>[[:digit:]])$"))
也不起作用。
我是egor的开发人员之一,虽然我知道这个问题并且计划在即将发布的版本中修复它,但是有一种方法可以通过重新排序alter data列来自行解决这个问题。问题是igraph要求更改ID或顶点名称是列出更改/顶点的数据框中的第一列。
以下是修复egor对象的方法:
library(dplyr)
e1$.alts <- lapply(e1$.alts, function(x) select(x, .altID, everything()))
有了这个修复,as_igraph()函数和可视化应用程序就可以工作了。
以上是关于R将egor对象转换为igraph /使用可视化应用程序(错误:重复的顶点名称)的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用igraph包进行网络(network)可视化实战:将变量映射到网络节点(vertex)将变量映射到网络的边(edge)
使用 plotly 或 Network 3D 将 igraph 转换为交互式绘图
R语言使用igraph包进行网络(network)可视化实战