首页 > 解决方案 > 为什么 R 会话在包含 13 K pdf 文件的 for 循环中中止?

问题描述

我正在为 13 K pdf 文件执行循环,它在其中读取、预处理文本、查找相似性并写入 txt。但是,当我在 760 个 pdf 文件之后运行 for 循环时,R 会话中止。可能是什么原因?

  1. 我尝试编写最少的代码来重现错误。但我收到同样的问题。
  2. 我试图增加memory_limit(),这也不是问题。
  3. 我试图删除文件夹中的隐藏文件,例如Thumbs.db,但同样的问题再次出现。
  4. 我试图将 13 K pdf 文件分成 4 个文件夹,每个文件夹(3,3K),我得到了同样的错误信息Error in file(file, ifelse(append, "a", "w")) : can not open the connection. In addition: There are 50 warnings() and R session aborted.
  5. 当我运行 pdf_folder[759:762] 时,它在没有中止的情况下读取得非常好。

folder_path <- "C: ...."
## get vector with all pdf names
pdf_folder <- list.files(folder.path)

## for loop over all pdf documents
for(s in 1:length(pdf_folder)){
 # for(s in 1:2){
 tryCatch({


   ## choose one pdf document from vector of strings
   pdf_document_name <- pdf_folder[s]

   ## read pdf_document pdf into data.frame
   pdf <- read_pdf(paste0(folder_path,"/",pdf_document_name))

   print(s)

   rm(pdf)

 ## first end trycatch block
}, error = function(e){print(paste("Error: PDF Document not used: ",pdf_document_name, sep =""))}
 ) ## end of trycatch

} ## end of for loop

# Error: 

Error in file(file, ifelse(append, "a", "w")) : can not open the connection. In addition: There are 50 warnings()

预期结果是读取、预处理folder.path 中的所有pdf 文档。

标签: rresourcesaborttermination

解决方案


推荐阅读