将 xts 对象从 FRED 转换为 data.table
Converting xts objects from FRED to data.table
我有一个来自 FRED 的 xts 对象,我想将其转换为 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 时,这就是全部(table 格式):
dataTableTemp
1 DJIA
除了
之外,我还尝试使用 ggplot2 中的 fortify(dataTableTemp)
dataTableTemp <- data.frame(date=index(dataTableTemp), coredata(dataTableTemp))
,甚至 tribble()
方法,但其中 none 似乎有效。我应该怎么做才能将其转换为 dataframe/data.table?
如有任何帮助,我们将不胜感激。谢谢。
如果您调整getSymbols
中的auto.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))
让其他人知道这个问题是如何解决的:
getSymbols('DJIA', src='FRED')
dataTableTemp <- as.data.table(DJIA)
我有一个来自 FRED 的 xts 对象,我想将其转换为 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 时,这就是全部(table 格式):
dataTableTemp
1 DJIA
除了
之外,我还尝试使用 ggplot2 中的fortify(dataTableTemp)
dataTableTemp <- data.frame(date=index(dataTableTemp), coredata(dataTableTemp))
,甚至 tribble()
方法,但其中 none 似乎有效。我应该怎么做才能将其转换为 dataframe/data.table?
如有任何帮助,我们将不胜感激。谢谢。
如果您调整getSymbols
中的auto.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))
让其他人知道这个问题是如何解决的:
getSymbols('DJIA', src='FRED')
dataTableTemp <- as.data.table(DJIA)