从quantmod :: getSymbols合并输出
我查看了很多关于合并R数据框的条目,但他们对我来说并不清楚,他们谈论的是使用公共列合并/合并,但在我的案例中,它错过了,不知道如何提取。这是我正在做的。从quantmod :: getSymbols合并输出
library(quantmod)
library(xts)
start = '2001-01-01'
end = '2015-08-14'
ticker = 'AAPL'
f = getSymbols(ticker, src = 'yahoo', from = start, to = end, auto.assign=F)
rsi14 <- RSI(f$AAPL.Adjusted,14)
我期待的输出是f
所有列,rsi14
比赛日期,但“日期”是不能作为列,所以不知道我该如何加入。我也必须加入几个移动平均值列。
你的问题的前提是错误的。 getSymbols
返回XTS对象,而不是一个data.frame:
R> library(quantmod)
R> f <- getSymbols("AAPL", auto.assign=FALSE)
R> str(f)
An ‘xts’ object on 2007-01-03/2015-08-14 containing:
Data: num [1:2170, 1:6] 86.3 84 85.8 86 86.5 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:6] "AAPL.Open" "AAPL.High" "AAPL.Low" "AAPL.Close" ...
Indexed by objects of class: [Date] TZ: UTC
xts Attributes:
List of 2
$ src : chr "yahoo"
$ updated: POSIXct[1:1], format: "2015-08-15 00:46:49"
XTS对象没有一个 “日期” 一栏。它们具有保存日期时间的index
属性。 xts扩展了动物园,因此请参阅动物园小插曲以及xt小插曲和常见问题以获取有关如何使用这些类的信息。
合并XTS对象是简单的:
R> f <- merge(f, rsi14=RSI(Ad(f), 14))
或者你可以只用$<-
添加/合并列到现有的XTS对象:
R> f$rsi14 <- RSI(Ad(f), 14)
谢谢,还有一个问题,我如何从XTS对象检索DATE列,我在另一个线程中看到使用index(f)其中f是XTS对象,index(f)返回日期为一个数组,但我正在寻找添加它作为另一列以及由XTS对象返回的其他列 - 再次感谢。 – user4488573
@ user4488573:没有日期栏。 xts/zoo对象是一个带有索引属性的矩阵,这是存储日期的地方。不要将它添加为另一列。你不能在矩阵中混合类型,而矩阵也不能包含分类对象,所以你的日期将被转换为整数/数字。 –
人们自愿在这里帮助,请不要让我们安装软件包并下载数据,以便查看数据的外观。我建议你阅读[this](http://*.com/questions/5963269/how-to-make-a-great-r-reproducible-example)和[this](http://*.com/help/mcve),然后提供更多信息。 – r2evans
你的问题的前提是错误的,因为'getSymbols'返回一个xts对象,而不是data.frame。合并xts对象与'f
@JoshuaUlrich我认为如果您将此评论发布为答案将会很好。我一直看到有人试图将xts对象(由'quantmod'以这种格式生成,出于一个很好的原因)转换为data.frames。 – RHertel