Записать список, содержащий фреймы данных, в файл Excel с помощью параллельной обработки

#r #parallel-processing #xlsx

#r #параллельная обработка #xlsx

Вопрос:

Можем ли мы написать список, содержащий фреймы данных в виде листов Excel в одной книге, используя параллельную обработку.

В настоящее время я делаю это, используя цикл for и используя пакет xlsx. Но это занимает около 2 минут для 150 листов.

РЕДАКТИРОВАТЬ — Добавлен мой пример кода с двумя фреймами данных в списке

 d1 <- data.frame(y1=c(1,2,3),y2=c(4,5,6))
d2 <- data.frame(y1=c(3,2,1),y2=c(6,5,4))
list_df <- list(d1, d2)

for(i in 1: length(list_df)){
  write.xlsx(list_df[[i]], file="sample.xlsx", sheetName=paste0("sheet ", i), append = T, row.names=F, col.names = F )

}
 

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

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

1. Вы не можете выполнять параллельную запись в один файл.

2. тогда есть ли более быстрый способ сделать это??

3. Было бы полезно добавить ваш текущий код, который вы используете для этого.

4. @akaDrHouse Я обновил вопрос, добавив в свой пример кода два фрейма данных в списке. Как я уже сказал, у меня есть список из 150 фреймов данных, который должен быть записан в файл Excel.

5. Это большие файлы? Приближается ли сумма времени, необходимого для выполнения каждого из них, к двум минутам, необходимым для выполнения всего? Я не знаю лучшего способа сделать это. Даже если вы использовали foreach для одновременной записи нескольких файлов, вы можете просто превысить лимиты записи на жесткий диск.