带多条边的R图

编程入门 行业动态 更新时间:2024-10-27 07:24:55
本文介绍了带多条边的R图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有如下所示的数据集

Employee address Designation E1 A1 D1 E2 A2 D2 E3 A1 D3 E4 A1 D1 E5 A3 D1

我需要在居住在相同地址且具有相同职称的员工之间创建关系,以便我可以创建图形边(Iggraph)

我使用了以下代码来绘制员工和地址之间的关系,但也使用了如何添加名称。

library(igraph) g <- graph_from_adjacency_matrix(tcrossprod(table(data)) - diag(nrow(data)), mode = "undirected") plot(g)

例如,e1、E4和按地址相关,但它们也按名称相关。因此,两条线路将连接这两条线路。一个是红色(表示地址),另一个是蓝色(表示指定)

推荐答案

当然,您可以更优雅地完成此操作,但一种选择可能是重塑数据,使其具有两个边列表,然后将它们组合在一起。

library(igraph) data<-data.frame(Employee=paste0("E", c(1:5)), Address=paste0("A", c(1:3,1,3)), Designation=paste0("D", c(1:3,2,3))) g1<-graph.adjacency(tcrossprod(table(data[,c(1,2)])), diag=FALSE, mode="undirected") el<-get.data.frame(g1) el$e_type<-"Address" g2<-graph.adjacency(tcrossprod(table(data[,c(1,3)])), diag=FALSE, mode="undirected") el2<-get.data.frame(g2) el2$e_type<-"Designation" el_all<-rbind(el, el2) final_g<-graph.edgelist(as.matrix(el_all[,1:2])) E(final_g)$type<-el_all[,3] E(final_g)$color<-ifelse(E(final_g)$type=="Address", "red", "blue") plot(final_g)

更多推荐

带多条边的R图

本文发布于:2023-07-18 05:11:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1141308.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多条

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!