#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 для одновременной записи нескольких файлов, вы можете просто превысить лимиты записи на жесткий диск.