如何在 igraph 中自动生成多个网络?

How can I automate the production of multiple nets in igraph?

我有一些数据要在 igraph 中使用。每个样本有两个数据框:一个包含链接列表,另一个包含节点列表。 Igraph 使用这些数据帧生成网络,例如:

net1 <- graph_from_data_frame(d=sample1links, vertices=sample1nodes)

其中 sample1linkssample1nodes 是不同的数据帧。

我有很多不同的样本,所以如果我能自动化这个过程就好了。有没有我可以使用的方法来执行上述过程以生成样本的所有网络(即 net1-netn,其中 n 是样本数)?

非常感谢任何能提供帮助的人!!

这是一个例子:

library(igraph)

# 2 example graphs as data frames
sample1nodes <- read.table(text = "a\nb\n\nc\nd\ne")
sample1links <- read.table(text = "a c\n\nb c\nc d")
sample2nodes <- read.table(text = "A\nB\n\nc\nd\ne")
sample2links <- read.table(text = "A c\n\nB c\nc d")

# create igraph objects from data frames in a list
glst <- Map(graph_from_data_frame, d=mget(ls(pattern = "sample\d+links")), vertices=mget(ls(pattern = "sample\d+nodes")))
names(glst) <- paste0("net", sub("sample(\d+)links", "\1", names(glst))) # rename list objects

# Store list elements in the global environment under their names
list2env(glst, envir = .GlobalEnv)

# plot
par(mfrow = c(1,2))
plot(net1)
plot(net2)