Cómo establecer .libPaths (punto de control) en los trabajadores cuando se ejecuta un cálculo paralelo en R

Uso el paquete de punto de control para el análisis de datos reproducibles. Algunos de los cálculos tardan mucho en calcularse, por lo que quiero ejecutarlos en paralelo. Sin embargo, cuando se ejecuta en paralelo, el punto de control no se establece en los trabajadores, por lo que recibo un mensaje de error "no hay un paquete llamado xy" (porque no está instalado en mi directorio de biblioteca predeterminado).

¿Cómo puedo asegurarme de que cada trabajador use las versiones del paquete en la carpeta del punto de control? Traté de establecer .libPaths en el código foreach pero parece que esto no funciona. También preferiría establecer el punto de control / libPaths una vez globalmente y no en cada llamada foreach.

Otra opción podría ser cambiar el archivo .Rprofile, pero no quiero hacer esto.

checkpoint::checkpoint("2018-06-01")

library(foreach)
library(doFuture)
library(future)

doFuture::registerDoFuture()
future::plan("multisession")

l <- .libPaths()

# Code to run in parallel does not make much sense of course but I wanted to keep it simple.
res <- foreach::foreach(
  x = unique(iris$Species),
  lib.path = l
) %dopar% {
  .libPaths(lib.path)
  stringr::str_c(x, "_")
}

Error en {: tarea 2 falló - "no hay un paquete llamado 'stringr'"

Respuestas a la pregunta(1)

Su respuesta a la pregunta