[英]Issues reading .mdb files in R
我正在嘗試閱讀R中的一系列Microsoft Access數據庫。我從使用mdb-tools的Hmisc包中找到了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可以處理的內存限制。
這里有一些建議可以幫助您:
您可能可以使用rm
釋放一些無用的東西。 在加載文件之前,運行gc()
觸發垃圾回收器,因此可以確保所有可用內存都可用。 這可能足以解決您的問題。
如果還不夠的話:一次依次導入mdb文件,然后將它們以另一種格式(例如默認的.RData
)保存在硬盤中,並完全清除工作區。 稍后打開它們進行分析時,您可能仍需要擔心空間,但是至少不必進行mdb- > R轉換步驟。
最后,您真的需要R來讀取該數據庫嗎? 如果不是這樣,僅使用其他技術(python?)來讀取數據庫就可以節省很多麻煩。
最后,一個處理大量數據的通用建議:如果您還不了解data.tables
,則應該真正考慮學習如何使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.