我的論文數據採集過程涉及從各種開源軟件庫中提取數據,並將其保存爲[R對象供日後分析的對象。管理來自不同來源的
爲了防止已處理的數據的重新下載和再加工(大部分數據是歸檔),我使用digest()
計算校驗和(散列)用於數據源的URL,然後用比較傳入的URL R數據文件以相應的校驗和命名。如果一個URL的校驗和與現有的R數據文件匹配,我會跳過這個URL的處理。我打算爲其他來源使用類似的方法,不是通過URL檢索數據,而是通過SQL查詢。在這種情況下,我考慮使用digest()
來計算每個數據集合SQL查詢的校驗和。
但是,我的主要問題是「當我想從數據文件中將R對象加載回R時,什麼是最佳/最佳/正確的方法來區分R對象?。我考慮以下兩種方法是:
在保存數據爲R的對象的過程中,動態地創建一個查找表與網址和對應校驗。這將允許我從R數據文件名稱追蹤任何校驗和到相應的URL以及相應的數據文件(表格)。
在保存數據的過程中,請使用
attr()
來存儲適當的信息(完整URL或僅用於基於URL的數據收集的URL文件名,或用於基於查詢的數據收集的SQL查詢)。
我看到的,因爲它允許把URL或SQL查詢信息的即時查詢第一種方法(查找表)的利益,而第二種方法(屬性)需要通過整個列表循環爲每個數據源尋找匹配信息。同時,屬性方法在保持元數據接近數據本身方面似乎更好,而查找表方法將其移動到R代碼層,這創建了額外的依賴關係。
請告知這種情況和我的想法。
我已經實現了我提到的(屬性和查找表)這兩種方法 - 只是爲了看看它是多麼容易 - 但後來意識到,我可以保持查找表中沒有R中的代碼,但作爲R對象,存儲在'.RData'文件。這將允許我將元數據存儲在數據附近,併爲不同的數據源維護不同的查找表。 –