R
Rstudio:當沒有添加延遲時,openxlsx 讀取循環崩潰……為什麼?
我有一個循環,由於 openxlsx 庫,我將 10 個巨大的 excel 2007 文件載入到 data.frame 列表中。當沒有添加延遲時,此循環在第 4 個文件處崩潰。在每次讀取後添加 500 毫秒的延遲可以解決問題。
你能告訴我為什麼嗎?
即使openxlsx不使用Java(不像xlsx庫)我猜這是一個“垃圾收集”的問題,它的增長速度比它減少的速度更快……如果我是對的,它是否存在一個比一個更“科學”的解決方案簡單的延遲?(類似於 << .jcall(“java/lang/System”,,“gc”) >> 這對於基於 Java 的 xlsx 讀取循環很有用?)
這是崩潰的程式碼部分(使用解決 pb 的 sys.sleep 行):
Library(openxlsx) ... for (index in 1:10) { print(sprintf("Loading file : %s", List_files[index])) Data[[List_years[index]]] <- readWorkbook(List_files[index], sheet=1, colNames=T, skipEmptyRows=T, detectDates=F) Sys.sleep(0.5) }
謝謝。
我昨天找到了這個問題的解決方案。事實上,我已經嘗試過“gc()”命令但沒有成功……但這是因為有必要使用重置選項強制清理。所以“gc(reset=T)”可以工作並且比插入的延遲更有效。