Правильный поиск функций из файлов .R при параллельной обработке

#r #import #parallel-processing #parallel.foreach

Вопрос:

Я пытаюсь найти способ правильного создания файлов .R для использования функций в цикле foreach, который выполняется параллельно. Решение, которое я привел ниже, работает только в том случае, если папка, содержащая функции, находится в текущем каталоге, и я хочу избежать этого. Файл, содержащий приведенную ниже функцию, и все файлы, полученные ниже, находятся в одном каталоге с именем «R». Я думаю, что есть более чистые способы сделать это, но я не могу их найти. Спасибо вам за вашу помощь.

 RESULT <- foreach(o=1:mi, .inorder = FALSE, .combine = "rbind", .packages = c("mlogit", "dfidx", "plyr", "dplyr"), .options.snow = opts) %dopar% {
  
  if (ParParams){
    source("R/SI3_SpecificModelImputation.R")
    source("R/SI4_InitialNAsImpute.R")
    source("R/SI5_TerminalNasImpute.R")
    source("R/SI6_SLGNAsImpute.R")
    source("R/SICommon.R")
 

Комментарии:

1. Я предлагаю вам создать пакет, но если вы не хотите просто использовать исходный код перед входом в цикл

2. Вы можете просто указать полный путь к сценариям R, тогда не имеет значения, откуда выполняется код. Нравится source(paste0(rest_of_path,"R/SI..."))