复制过程的结果错误

error with the result of a replication procedure

我在执行以下过程时遇到问题:

library(igraph)
k <- cbind(c(.2,.2),c(.2,0))

sbm_centr <- replicate(
  2000,
  sample_sbm(49, pref.matrix = k, block.sizes = c(24, 25)) %>%
    centr_degree(.)$centralization
)

问题是该函数生成的结果带有两个参数(除了每个复制的 ID 之外),因此该过程报告错误:Error in .$centr_degree( .) : 传递给 '$' 的 3 个参数需要 2"

我尝试使用以下表达式保存其中一个参数,但未成功:centr_degree(.)$centralization[1])

但列表只包含 0。预先感谢您的意见。

{}

屏蔽代码
library(dplyr)
library(igraph)
library(purrr)
sbm_centr <- replicate(
  2000,
  sample_sbm(49, pref.matrix = k, block.sizes = c(24, 25)) %>%
    {centr_degree(.)$centralization}
)

或在 pluck

的管道中使用列表元素提取
sbm_centr <- replicate(2000,
   sample_sbm(49, pref.matrix = k, block.sizes = c(24, 25)) %>% 
      centr_degree(.) %>% 
      pluck("centralization"))

-输出

> str(sbm_centr)
 num [1:2000] 0.158 0.188 0.128 0.153 0.165 ...

我们可以像下面这样在管道中使用[[

sbm_centr <- replicate(
  1,
  sample_sbm(49, pref.matrix = k, block.sizes = c(24, 25)) %>%
    centr_degree(.) %>%
    `[[`("centralization")
)