从数据帧列表在igraph中生成多个图形对象

从数据帧列表在igraph中生成多个图形对象,r,dataframe,igraph,mapply,R,Dataframe,Igraph,Mapply,我有两个大约80个数据帧的列表——一个用于节点,另一个用于边缘。我想使用igraph函数graph_from_dataframe来连接节点和边数据帧,从而生成一个igraph对象列表。目前,我一直在尝试: glst <- mapply(graph_from_data_frame, d=ListOfEdgeDfs, vertices=ListOfNodeDfs, SIMPLIFY = FALSE,

我有两个大约80个数据帧的列表——一个用于节点,另一个用于边缘。我想使用igraph函数graph_from_dataframe来连接节点和边数据帧,从而生成一个igraph对象列表。目前,我一直在尝试:

glst <- mapply(graph_from_data_frame, 
           d=ListOfEdgeDfs, 
           vertices=ListOfNodeDfs,
            SIMPLIFY = FALSE,
           directed =F)
有人知道我该怎么做吗

以下工作(对于2个图形的列表,同样的工作应该适用于任意数量的图形,您能否确保数据帧结构相似):

ListOfEdgeDfs以下工作(对于2个图形的列表,同样的工作应该适用于任意数量的图形,您能否确保数据帧结构相似):


ListOfEdgeDfs Hi Sandipan!伟大的您知道我如何更改代码,使其在一行代码中绘制所有图形吗?i、 e.而不是编写绘图(glst[[1]])、绘图(glst[[2]])。。。绘图(glst[[n]])一行完成所有工作的东西Hi Sandipan!伟大的您知道我如何更改代码,使其在一行代码中绘制所有图形吗?i、 e.而不是编写绘图(glst[[1]])、绘图(glst[[2]])。。。绘图(glst[[n]])在一行中完成所有工作的东西
Error in (function (d, directed = TRUE, vertices = NULL)  : 
  Some vertex names in edge list are not listed in vertex data frame
ListOfEdgeDfs <- list(data.frame(from=letters[1:3], to=c('b', 'c', 'd')), 
                      data.frame(from=rep('a',3), to=c('b', 'c', 'd')))
ListOfEdgeDfs
#[[1]]
#  from to
#1    a  b
#2    b  c
#3    c  d
#[[2]]
#  from to
#1    a  b
#2    a  c
#3    a  d

ListOfNodeDfs <- list(data.frame(node=letters[1:4]), data.frame(node=letters[1:4]))
ListOfNodeDfs
#[[1]]
#  node
#1    a
#2    b
#3    c
#4    d
#[[2]]
#  node
#1    a
#2    b
#3    c
#4    d

library(igraph)
glst <- mapply(graph_from_data_frame, 
               d=ListOfEdgeDfs, 
               vertices=ListOfNodeDfs,
               SIMPLIFY = FALSE,
               directed =F)
par(mfrow=c(1,2))
#plot(glst[[1]])
#plot(glst[[2]])
n <- 2 # number of graphs
par(mfrow=c(2,1)) # if you have 100 graphs, try par(mfrow=c(10,10)) e.g.
invisible(sapply(1:n, function(i) plot(glst[[i]], vertex.size=50)))