我有一個簡單的分析需要完成。我只需要計算列(或行,如果轉置)的相關性。夠簡單?我整個星期都無法得到結果,並且我已經瀏覽了大部分解決方案。當ff矩陣內存分配不夠時,在R中使用大數據集的相關矩陣
我的筆記本電腦有4GB RAM。我可以訪問32個節點的服務器。我的數據無法在這裏加載,因爲它很大(411k列和100行)。如果您需要任何其他信息或可能是數據的一部分,我可以嘗試將其放在此處,但是可以輕鬆解釋問題,而不必真正查看數據。我只需要得到大小爲411k×411k的相關矩陣,這意味着我需要計算我的數據行之間的相關性。
概念我試圖代碼:(他們都以某種方式給我記憶問題或永遠運行)
- 最簡單的方式,對所有一排,結果寫出來使用append.T 。 (永久運行)
- bobthecat的biCorPar.r(https://gist.github.com/bobthecat/5024079),將數據分成塊並使用ff矩陣。 (無法分配內存來分配我的服務器中使用ff()的corMAT矩陣)
- 將數據拆分成集(每10000個連續的行將成爲一個集合)並且將每個集合與其他集合(與bigcorPar相同的邏輯)但我無法找到一種方法將它們全部存儲在一起,最終生成最終的411kX411k矩陣。
- 我現在正在嘗試這一點,bigcorPar.r 10000行對411K(所以10000被分成塊),並保存在單獨的CSV文件的結果。
- 我也試圖在我的服務器上運行,每1000 VS 411k中的一個節點,今天是我的第3天,我仍然排71
我不是的R親,所以我只能嘗試這麼多。要麼我的代碼永遠運行,要麼我沒有足夠的內存來存儲結果。有沒有更有效的方法來解決這個問題?
感謝您的所有意見和幫助。
大小爲411000 x 411000的相關矩陣。即1.68921e + 11個元素。 ff向量中元素的最大數量是2147483647.您的對象將是最大值的+/- 50倍。你應該重新思考你想用這個相關矩陣做什麼。 – jwijffels