2017-08-09 92 views
0

我有一個來自FRED的xts對象,並且想將它轉換爲data.table(或dataframe)對象。相關的代碼是:將xts對象從FRED轉換爲data.table

library(data.table) 
library(quantmod) 
library(Quandl) 
library(zoo) 
library(knitr) 
library(ggplot2) 

dataTableTemp <- getSymbols('DJIA', src='FRED') 
dataTableTemp <- as.data.table(dataTableTemp) 

這是XTS的內容對象它得到:

   DJIA 
2007-08-08 13657.86 
2007-08-09 13270.68 
2007-08-10 13239.54 
...   ...   

STR(DJIA),這是它的下載時,它被賦予的名字,給人

> str(DJIA) 
An ‘xts’ object on 2007-08-08/2017-08-08 containing: 
    Data: num [1:2610, 1] 13658 13271 13240 13237 13029 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr "DJIA" 
    Indexed by objects of class: [Date] TZ: UTC 
    xts Attributes: 
List of 2 
$ src : chr "FRED" 
$ updated: POSIXct[1:1], format: "2017-08-09 09:41:49" 

它繼續像幾千行一樣。當我將其轉換爲data.table與代碼的第二行,然而,這是所有有(以表格形式):

   dataTableTemp 
1   DJIA 

我利用GGPLOT2 fortify(dataTableTemp)嘗試,除了

dataTableTemp <- data.frame(date=index(dataTableTemp), coredata(dataTableTemp)),甚至是tribble()方法,但他們都沒有工作。我應該怎麼做才能將其轉換爲dataframe/data.table?

任何幫助,將不勝感激。謝謝。

+0

當執行,只有dataTableTemp有一行有'date'和'coredata.dataTableTemp'列。 '日期'只是數字1(顯然不正確),另一列是股票代碼名稱(DJIA),它應該是16000這樣的數字。 –

+0

在DJIA而不是dataTableTemp上做?這可能只是返回符號的字符串名稱。獲取符號的賦值默認返回名稱。有一個參數可以設置爲返回任務中的數據,但是您的全局環境獲取DJIA – FXQuantTrader

+0

dataTableTemp < - data.frame(date = index(DJIA),coredata(DJIA)) – FXQuantTrader

回答

1

讓別人知道這個問題是如何解決的:

getSymbols('DJIA', src='FRED') 
dataTableTemp <- as.data.table(DJIA) 
1

,如果你調整getSymbolsauto.assign參數你可以得到你所期望的結果:

# Note the auto.assign = FALSE parameter specification (this will avoid assigning the data to JDIA in the global environment.: 

dataTableTemp <- getSymbols('DJIA', src='FRED', auto.assign = FALSE) 
x = data.table("date" = index(dataTableTemp), coredata(dataTableTemp))