2013-04-25 84 views
2

aI'm在運行返回函數後出現問題,將導出的xt導出的R Matrix轉換回xts對象。下面是我得到了什麼?如何將R Matrix轉換爲xts/zoo對象?

> class(xtsData) 
[1] "xts" "zoo" 

> head(xtsData) 
      ts_58_20_B_003_003 ts_58_20_S_021_005 ts_58_20_S_034_013 ts_58_20_S_042_021 
2011-01-02   10001.0   10000.0    10000    10000 
2011-01-03   10387.5   10001.0    10000    10000 
2011-01-04   10387.5   10551.0    10000    10000 
2011-01-05   10387.5   10562.5    10000    10000 
2011-01-06   10387.5   10562.5    10000    10000 
2011-01-07   10387.5   10562.5    10000    10000 
> tail(xtsData) 
      ts_58_20_B_003_003 ts_58_20_S_021_005 ts_58_20_S_034_013 ts_58_20_S_042_021 
2013-03-05   21199.0    14905   10274.5    8859 
2013-03-06   20498.0    14905   10274.5    8859 
2013-03-07   20484.5    14905   10274.5    8859 
2013-03-08   20957.5    15478   10847.5    9432 
2013-03-11   20957.5    15478   10847.5    9432 
2013-03-12   20531.5    14776   10847.5    9432 

繼RMetrics文檔中的一個過程......

> xtsDataDiff <- xtsData[, ]/as.numeric(xtsData[1, ]) 
> class(xtsDataDiff) 
[1] "xts" "zoo" 

當我申請的回報功能我失去了返回的對象爲XTS對象..

> xtsData_1 <- returns(xtsDataDiff) 
> class(xtsData_1) 
[1] "matrix" 
> tail (xtsData_1) 
      ts_58_20_B_003_003 ts_58_20_S_021_005 ts_58_20_S_034_013 ts_58_20_S_042_021 
2013-03-05  0.0000000000  -0.000099995  0.000099995  0.000000000 
2013-03-06  -0.0337266853  0.000099995  0.000000000  0.000000000 
2013-03-07  -0.0005588228  0.000000000  0.000000000  -0.000099995 
2013-03-08  0.0228280749  0.037722934  0.054169546  0.062774267 
2013-03-11  0.0000000000  -0.000099995  0.000099995  0.000000000 
2013-03-12  -0.0206362804  -0.046315423  0.000000000  0.000000000 

當我嘗試重新建立數據集作爲一個xts對象時,我得到一個錯誤。

所以我的問題是這樣的...我如何重新建立矩陣的數據作爲一個xts對象?

+1

你如何嘗試'xtsData_1'轉換爲XTS對象?你會得到什麼錯誤? – 2013-04-25 12:32:10

回答

4

一個想法是再次將您的矩陣轉換爲xts對象。使用as.xtsxts構造例如:

xts(xtsData_1,as.POSIXct(rownames(xtsData_1))) 
+0

謝謝。這工作完美。 – user1981673 2013-04-25 14:24:55