r-复制过程的结果出现错误



我在以下过程中遇到问题:

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(,因此过程报告了一个错误:中的错误$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")
)

最新更新