2010-06-29 221 views
2

最近我一直在處理大型數據集(超過40萬行)。到目前爲止,我一直在使用XTS格式,該格式適用於幾十萬個元素的「小」數據集。XTS大小限制

現在項目不斷增加,R在檢索數據庫的數據並將其放入XTS時崩潰。

這是我的理解,R應該能夠有大小爲2^32-1元素(或2^64-1根據版本)的大小。因此,我得出的結論是XTS可能有一些限制,但我無法在文檔中找到答案。 (也許我對自己對理論可能的矢量大小的理解有點過分自信)。

綜上所述,我想知道,如果:

  1. XTS確實有大小限制
  2. 你認爲什麼是處理大量的時間序列的最聰明的方法是什麼? (我正在考慮將分析分成幾個較小的數據集)。
  3. 我沒有收到錯誤消息,R只是自動關閉。這是一個已知的行爲嗎?

SOLUTION

  1. 同爲R和這取決於種存儲器被使用(64位,32位)。無論如何,這是非常大的。
  2. Chuncking數據確實是一個好主意,但它不是必需的。
  3. 此問題來自R 2.11.0中的錯誤,該錯誤已在R 2.11.1中解決。長日期矢量(這裏是XTS的索引)存在問題。
+0

R 3.0.0將允許具有> 2^32 - 1個元素的向量。它計劃在4月正式出來,但在那之前嘗試r-devel版本的R. – 2013-01-02 19:35:25

回答

5

關於你提到的兩個問題,我的$ 0.02:

  1. 是的,有2^32-1元素的R載體的限制。這來自索引邏輯,據報道R中的內容足夠深,不可能很快被替換(因爲它會影響現有的代碼)。 Google詳細介紹r-devel列表;這已經出現了。 xts包不會強加額外的限制。

  2. 是的,把事情分解成可管理的塊是最聰明的方法。我曾經在大數據集上做過這些工作,當時我只使用32位版本的R。我現在使用64位R,並且不再有這個問題(和/或保持我的數據集合理),

有一些'內存不足'的方法,但我首先嚐試重新思考問題,並確認您確實需要一次全部400k行。

+0

那麼問題是我正在對數據集應用一些指標。基本上我必須找到這些指標的最佳參數。所以按塊分割對我來說並不是很好,因爲它使我的分析「不連貫」。我能做的也許只是考慮幀並連續移動數據。 (如1 ... 10,2 ... 11,3 ....12,每次查詢數據庫)。 – SRKX 2010-06-29 03:36:11

+0

其實我注意到如果我做了計算,並且我不在R控制檯上顯示結果,R就不會崩潰。當以某種方式顯示數據時,這只是個問題。很高興知道。任何想法爲什麼這樣? – SRKX 2010-06-29 03:49:35

+0

@JSMaga:可能是'print' /'plot'函數不能處理那麼多行。無論如何,你無法閱讀那麼多,所以最好先總結一下,只顯示你需要的內容。 – 2010-06-29 15:26:40