Сохранить вывод цикла foreach в пакете R NMF

Я прошу прощения, потому что я знаю, что этот вопрос задавался ранее, но я попробовал большинство вариантов ответа, не помогая.

Я использую пакет foreach для запуска цикла алгоритма NMF для набора данных. Я пытаюсь извлечь набор базовых имен с помощью функции ExtractFeatures, которая выводит каждый прогон в виде списка того, сколько рангов вы определяете (в моем примере 3).

Вот мой код ниже (я использовал образец набора данных из виньетки NMF):

library("NMF")
library("doParallel")
library("foreach")

#load vignette dataset and shorten it for time's sake
data(esGolub)
esGolub <- esGolub[1:200,]

#output matrix
Extract_Genes <- matrix()

#set cores
registerDoParallel(cores = 3)

#Loop NMF runs and extract features
foreach(i =1:4, .packages = "NMF") %dopar%{
  i <- nmf(esGolub, 3, nrun = 1)
  Extract_Genes <- extractFeatures(i, format = "list")
}

Это выводит список извлеченных генов следующим образом:

[[1]]
[[1]][[1]]
[1]  43 120 128 130

[[1]][[2]]
[1]  94   1 112  42   8  64  96 182  59  41  69  25  26

[[1]][[3]]
[1]  39  74   2  91 190 167 103 129 174

3 раза за 3 прогона, но это не экономит. Есть ли у кого-нибудь предложения о том, как сохранить эти результаты?

Заранее спасибо, J

1 ответ

Решение

Комментарий от Imo работает отлично:

myList <- foreach(i =1:4, .packages = "NMF") %dopar%{
Другие вопросы по тегам