我相当确定这XXX.Close
将始终是返回的对象中的第四列getSymbols
,因此如果您的对象是X
,那么X[,4]
将为您提供所需的列。当然,单列对象仍然会有 和 类xts
,zoo
这将使绘图等更方便。如果你真的想要一个numeric
接近值的向量,你可以使用X[[4]]
删除xts
和zoo
类。在下面的示例中,我创建了一个新环境qm_env
来存储对象,这样它们就不会弄乱我的.GlobalEnv
- 你可以忽略with(qm_env, ...)
我的表达部分并专注于...
:
library(quantmod)
##
qm_env <- new.env()
tickers <- c("SPY","MSFT","MMM")
##
sapply(tickers, function(x){
getSymbols(x,env=qm_env)
})
##
with(qm_env,close <- MMM[,4])
R> with(qm_env, head( close ))
MMM.Close
2007-01-03 78.26
2007-01-04 77.95
2007-01-05 77.42
2007-01-08 77.59
2007-01-09 77.68
2007-01-10 77.85
如果由于某种原因您不确定第四列将始终是关闭值,只需创建一个这样的函数
getClose <- function(x) {
x[,agrep("Close",names(x))]
}
应该做的工作:
R> with(qm_env, head( getClose(MSFT) ))
MSFT.Close
2007-01-03 29.86
2007-01-04 29.81
2007-01-05 29.64
2007-01-08 29.93
2007-01-09 29.96
2007-01-10 29.66
R> with(qm_env, head( getClose(SPY) ))
SPY.Close
2007-01-03 141.37
2007-01-04 141.67
2007-01-05 140.54
2007-01-08 141.19
2007-01-09 141.07
2007-01-10 141.54