У меня есть эта проблема с использованием R и пакета foreach для параллельной обработки.
У меня есть один набор данных в час в течение одного года. Учитывая только один набор данных, для параллельной работы я использую:
day = foreach (h = 1:24, .combine=rbind) %dopar% {
...
singlematrix # return a single matrix
}
24matrices <- day
# thanks to rbind, all single matrices are piled together
Каждый цикл возвращает матрицу, а .combine=rbind
делает так, что я получаю большую матрицу, состоящую из 24 отдельных матриц.
Если вместо того, чтобы возвращать матрицу при каждом h
, я хочу добиться чего-то вроде:
day = foreach (h = 1:24, .combine=rbind) %dopar% {
...
list("row"=singlerow, "matrix"=singlematrix) # return both
}
24rows <- day[[1]] # singlerows piled up
24matrices <- day[[2]] # singlematrices piled up
как я могу сложить вместе все 24 одиночных строки и все 24 одиночные матрицы вместе, не смешивая строки и матрицы?
Я попытался вставить .multicombine=TRUE
, вернув list( "row"=item1, "matrix"=item2)
, но строки и матрицы смешиваются. К сожалению, я не очень хорошо разбираюсь в lapply
, и, возможно, это правильный путь. Большое спасибо!