Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何合并图并在新图中保存有向和无向组件?_R_Igraph - Fatal编程技术网

R 如何合并图并在新图中保存有向和无向组件?

R 如何合并图并在新图中保存有向和无向组件?,r,igraph,R,Igraph,我读过这本书 我有两个图形gUed和gDed gUed是无向图,gDed是有向图。 我需要把这些图合并成一个。 我用边缘列表建立了这个联盟 library(igraph) gDed <- graph.formula(1-+2, 2-+3, 3-+4, 4-+5) gUed <- graph.formula(6--1, 7--2, 8--4, 9--5) EL = as_edgelist(gDed, names = TRUE) EL1 = as_edgelist(gUed, na

我读过这本书

我有两个图形
gUed
gDed

gUed
是无向图,
gDed
是有向图。 我需要把这些图合并成一个。 我用边缘列表建立了这个联盟

library(igraph)
gDed <- graph.formula(1-+2, 2-+3, 3-+4, 4-+5)

gUed <- graph.formula(6--1, 7--2, 8--4, 9--5)

EL  = as_edgelist(gDed, names = TRUE)
EL1 = as_edgelist(gUed, names = TRUE)
ELU = rbind(EL, EL1)
ELU = ELU[!duplicated(ELU),]
GU = graph_from_edgelist(ELU)

## To check the result
par(mfrow=c(1,3))
plot(gDed)
plot(gUed)
plot(GU)
库(igraph)

gDed网络必须是有向的或无向的。也就是说,你可以稍微解决一下

与找到的答案类似,您创建了一个有向网络,并传入一个参数,该参数跟踪边是否有向。您可以在打印时使用此选项,或将网络子集:

E(gDed)$type <- "dir"
E(gUed)$type <- "undir"


g <- graph_from_data_frame(
  rbind(
    as_data_frame(gDed, what = "edges"),
    as_data_frame(gUed, what = "edges")
  )
)


plot(g,
     edge.arrow.mode = ifelse(E(g)$type=="undir", "-", ">"))


g_sub1 <- subgraph.edges(g, eids = E(g)[E(g)$type=="undir"] )
plot(g_sub1,
     edge.arrow.mode = ifelse(E(g_sub1)$type=="undir", "-", ">"))


g_sub2 <- subgraph.edges(g, eids = E(g)[E(g)$type!="undir"] )
plot(g_sub2,
     edge.arrow.mode = ifelse(E(g_sub2)$type=="undir", "-", ">"))

E(gDed)$type你有很多图表吗?还是这三张?@Ashish,我有两张随机图。