【发布时间】:2021-03-17 15:25:17
【问题描述】:
我想创建一个 igraph 对象列表,然后将该列表输入到两个模拟信息传播的函数中。具体来说,我想生成一个随机生成的小世界和无标度网络列表,然后将这些列表输入两个函数,这些函数应用信息扩散的独立级联和线性阈值模型。
我可以使用 lapply 创建一个包含 1000 个唯一无标度 igraph 对象(大小为 100 个节点)的列表:
sample <- as.list(rep(100, 1000))
list <- lapply(X = sample, FUN = sample_pa)
但是,对于需要参数的小世界函数来说,这并不容易:
sample <- as.list(rep(100, 1000))
list <- lapply(X = sample, FUN = sample_smallworld(dim = 1, size = 100, nei = 2, p = 0.25))
我收到此错误:
Error in match.fun(FUN) :
'sample_smallworld(dim = 1, size = 100, nei = 2, p = 0.25)' is not a function, character or symbol
然后我想将这个 igraph 对象列表输入到来自influence.maximization package 的几个函数中:
# independent cascade:
out <- influence_ic(g, seeds, 1000, 0.5))
# linear threshold:
out2 <- influence_lt(g, seeds, 1000, 0.5)
这些函数接受 igraph 对象(g,这将是我在上面创建的列表)、种子(初始活动节点列表)、步骤(运行次数)和激活概率或阈值(在我的示例中为 0.5 )
如何修复我的 lapply 代码以接受 sample_smallworld() 函数,以及如何将这些 igraph 对象列表输入到这些影响函数中?最终,我希望从 1000 个唯一 igraph 对象中获得激活节点数的数据框或列表。
【问题讨论】: