簡體   English   中英

在R中讀取.mdb文件時出現問題

[英]Issues reading .mdb files in R

我正在嘗試閱讀R中的一系列Microsoft Access數據庫。我從使用mdb-toolsHmisc包中找到了mdb.get函數。

這是我的一個特定.mdb文件的工作流程

system("wget http://www.dgis.salud.gob.mx/descargas/zip/BDSS_2004.zip")
unzip("BDSS_2004.zip")
mdb.get("SECTORIAL2004.mdb")
   Can't alloc filename
   Couldn't open database.
   named list()
   Warning message:
   running command 'mdb-tables -1 SECTORIAL2004.mdb' had status 1 

我試圖直接使用System()傳遞突擊隊給mdb-tables命令,但我得到非常相似的結果。

system("mdb-tables SECTORIAL2004.mdb")   
   Can't alloc filename
   Couldn't open database.

主要問題是,當我直接在終端中執行此操作時,它對於相同文件也可以正常工作。 我想我可以使用shell腳本來做到這一點,但我寧願在R中完成它。任何幫助將不勝感激。

編輯

我忽略了說我在RStudio中運行此代碼,我嘗試僅在R Terminal中運行它,並且它起作用了,因此使我認為它與mdb-tools的文件路徑或類似的內容有關那。 話雖這么說,我仍然希望能夠在RStudio中做到這一點。 謝謝!

...我試圖重現您的錯誤,但對我來說一切正常。

從錯誤消息(“無法分配文件名”)和您所說的內容(“ 一系列 Microsoft Access數據庫”)來看,我敢打賭您正在達到R可以處理的內存限制。

這里有一些建議可以幫助您:

  1. 您可能可以使用rm釋放一些無用的東西。 在加載文件之前,運行gc()觸發垃圾回收器,因此可以確保所有可用內存都可用。 這可能足以解決您的問題。

  2. 如果還不夠的話:一次依次導入mdb文件,然后將它們以另一種格式(例如默認的.RData )保存在硬盤中,並完全清除工作區。 稍后打開它們進行分析時,您可能仍需要擔心空間,但是至少不必進行mdb- > R轉換步驟。

  3. 最后,您真的需要R來讀取該數據庫嗎? 如果不是這樣,僅使用其他技術(python?)來讀取數據庫就可以節省很多麻煩。

最后,一個處理大量數據的通用建議:如果您還不了解data.tables ,則應該真正考慮學習如何使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM