Распараллелить несколько функций на одном объекте

Благодаря ДЭВИДУ ШОЧУ, я усилил его функцию и немного изменил, чтобы создать следующее. Работает отлично.

Теперь все, что мне нужно, - это вычислить эти переменные, т.е. запустить функции на графическом объекте 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))
Другие вопросы по тегам