Распараллелить несколько функций на одном объекте
Благодаря ДЭВИДУ ШОЧУ, я усилил его функцию и немного изменил, чтобы создать следующее. Работает отлично.
Теперь все, что мне нужно, - это вычислить эти переменные, т.е. запустить функции на графическом объекте H параллельно, возможно, используя purrr или furrr, чтобы запустить это быстрее. Мои реальные данные велики с еще 30 функциями. Вывод должен быть таким же, как H_indices, показанный в последней строке кода.
library(igraph); library(sna); library(centiserve); library(tidygraph); library(tibble); library(expm)
H <- play_islands(5, 10, 0.8, 3)
all_indices <- function(g) {
tibble(
degree = igraph::degree(g),
flowbet = sna::flowbet(get.adjacency(g,sparse=F)),
communibet = centiserve::communibet(g))
}
H_indices <- all_indices(H)
1 ответ
В отсутствие
reprex
, трудно дать однозначное решение, поэтому нижеследующее дает только представление. Следующее должно работать, если
H
это список или вектор.
library(furrr)
library(dplyr)
plan(multiprocess)
H %>%
future_map(all_indices,
.options = furrr_options(seed = TRUE))