Я предпочитаю библиотеку foreach
для подобных задач. Вы можете сделать это с этим следующим образом. Поскольку у меня нет никаких данных, я использую примеры данных из документации, хотя они всегда получают один и тот же результат, поскольку я не могу их повторить. Но вы можете легко проверить, работает ли он парализовано.
library(foreach)
library(parallel)
library(doParallel)
library(MASS) #just used for the UScrime data from documentation of BMA
data(UScrime)
registerDoParallel(**number of cores you want to use**)
bma_dat <- foreach(i=1:60)%dopar%{
library(BMA)
x.quest <- UScrime[,-16]
y.quest <- UScrime[,16]
bma1 <- bicreg(
x.quest,
y.quest,
wt = rep(1, length(y.quest)),
strict = FALSE,
OR = 20,
maxCol = 31,
drop.factor.levels = FALSE,
nbest = 70
)
return(bma1)
}
Вывод представляет собой вложенный список, который вы можете адресовать отдельно
Для получения дополнительной информации см. документацию foreach
Затем используйте i для различных шагов итерации ваших данных (x.quest/y.quest) и измените конец цикла на количество необходимых итераций. Вы можете сделать это легко с помощью length(df)
или чего-то подобного.