首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在sapply中将参数传递给within函数

在sapply中将参数传递给within函数
EN

Stack Overflow用户
提问于 2022-03-30 15:27:08
回答 1查看 26关注 0票数 1

我是网络分析和ERGM模型的新手,我有一个列表,其中有100个Erdos Renyi模型作为内容,是用下面的代码创建的。

代码语言:javascript
复制
set.seed(666)
gs <- list()
for (x in seq_len(100L)) {
  gs[[x]] <- erdos.renyi.game(374, 0.0084, type = "gnp", directed = F)
  E(gs[[x]])$weight <- sample(1:5, ecount(gs[[x]]), T)
}

现在我想计算两个节点之间的平均路径长度,以及这100个模型之间的平均聚类。对于平均路径长度,我使用了以下代码:

代码语言:javascript
复制
random_mean_paths <- sapply(gs, igraph::mean_distance, 1:100) 
mean(random_mean_paths)

但是,如果我对igraph::transitivity进行同样的尝试,即

代码语言:javascript
复制
random_mean_clus <- sapply(gs, igraph::transitivity, 1:100)

我知道错误了

代码语言:javascript
复制
Error in match.arg(arg = arg, choices = choices, several.ok = several.ok) : 
  'arg' must be of length 1

当试图通过设置type = "global"来解决此错误时,即

代码语言:javascript
复制
random_mean_clus <- sapply(gs, igraph::transitivity(type = "global", 1:100)

我得到了错误argument "graph" is missing with no default

我不能在gs函数中指定transitivity(),因为它不是in对象,而且我无法将正确的参数传递给这个函数。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-03-30 15:33:13

任一种

代码语言:javascript
复制
random_mean_clus <- sapply(gs, igraph::transitivity, type = "global", 1:100)
random_mean_clus <- sapply(gs, \(s) igraph::transitivity(s, type = "global", 1:100))

就能解决问题。

第一个参数包括参数列表中的命名参数,第二个参数使用R4.1中引入的新方法定义匿名函数\(s)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71680037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档