Я использую pblapply () для параллельного запуска кода. Он дает полосу прогресса, что полезно. Я использую такие функции, как clusterExport () или clusterEvalQ () , чтобы экспортировать объекты или библиотеки в кластеры. Но мне не удалось поделиться домашней функцией, доступной в моем окружении. Можете ли вы мне с этим помочь?
Вот очень простой c пример:
# home-made function
mean_by_column <- function(j){
mean(iris[,j])
}
# this will produce error: could not find function "mean_by_column"
cl <- parallel::makeCluster(2)
result_list <- pbapply::pblapply(
cl = cl,
X = 1:4,
FUN = function(j){ mean_by_column(j) }
)
# this will work
result_list <- pbapply::pblapply(
cl = cl,
X = 1:4,
FUN = function(j){ mean(iris[,j]) }
)
Он работает, когда я переписываю всю функцию в аргументе pblapply FUN, но я не Я не хочу его использовать, потому что настоящая самодельная функция очень длинная, и я хотел бы применить такой код несколько раз, я не хочу каждый раз переписывать всю функцию. Более того, это не будет оптимальным решением, если я захочу изменить самодельную функцию позже или если я захочу произвести отладку.
Заранее спасибо.