R 文件处理时间长

R 文件处理时间长,r,officer,R,Officer,我们使用officer自动生成报告(约100页,包含许多图表)。如果我们单独运行这些章节,每个文件都会运行得非常快。但是如果将所有12个文件一起运行,这将需要一个小时。我们假设所有结果都存储在工作内存中,这导致了问题。在每章之后打印文档或使用rm()删除中间不再需要的所有对象对处理时间没有影响。有什么办法可以“清除”工作内存或加快处理速度吗? 下面是我们的代码摘要: doc_output = file.path("C:/Doc/report.docx") doc = read_docx(p

我们使用officer自动生成报告(约100页,包含许多图表)。如果我们单独运行这些章节,每个文件都会运行得非常快。但是如果将所有12个文件一起运行,这将需要一个小时。我们假设所有结果都存储在工作内存中,这导致了问题。在每章之后打印文档或使用
rm()
删除中间不再需要的所有对象对处理时间没有影响。
有什么办法可以“清除”工作内存或加快处理速度吗?
下面是我们的代码摘要:

doc_output = file.path("C:/Doc/report.docx")  

doc = read_docx(path = doc_template)  

source(paste0("Chapter-1_", year, ".R"))  
print(doc, target = doc_output)  
rm(list = ls()[! ls() %in% c("year", "data_all", "data", "doc_template", "doc_output", "doc")])  
gc()  

source(paste0("Chapter-2_", year, ".R"))  
print(doc, target = doc_output)  
rm(list = ls()[! ls() %in% c("year", "data_all", "data", "doc_template", "doc_output", "doc")])  
gc()  

[...]  

source(paste0("Chapter-11_", year, ".R"))  
print(doc, target = doc_output)  
rm(list = ls()[! ls() %in% c("year", "data_all", "data", "doc_template", "doc_output", "doc")])  
gc() 

请提供一个最小的可复制示例。你能分享一下生成报告的方式吗?你说的“所有12个文件都在一起”是什么意思?@Sven:我们正在使用源函数一个接一个地运行所有12个文件。如果我们在运行一章后重新启动R,则下一章运行得非常快。但是如果我们一个接一个地运行所有文件因此,R变得非常慢。请提供一个最小的可复制示例。你能分享一下生成报告的方式吗?你说的“所有12个文件在一起”是什么意思?@Sven:我们正在使用源函数一个接一个地运行所有12个文件。如果我们在运行一个章节后重新启动R,则下一章节运行得非常快。但是如果我们一个接一个地运行所有文件,R变得非常慢。