我正在尝试创建从Yahoo获得符号后提供历史波动性的功能。但是,当我将输出传递给波动率函数时,它不喜欢它。 get变量被指定为带引号的向量,例如“间谍”,但波动率函数仅在没有引号(间谍否“间谍”)的情况下摄取。我尝试使用noquote()取下报价,现在得到以下错误:

日志中的错误(x):非数字参数到数学函数

我的代码

require(quantmod)

vClose = function(X){
Get <- getSymbols(X, from="2000-01-01", src="yahoo")
Set <- noquote(Get)
volatility(Set, calc="close")
}

任何帮助都会很棒。

有帮助吗?

解决方案

只是设置 auto.assign=FALSE 在您的电话中 getSymbols:

require(quantmod)
Get <- getSymbols("SPY", from="2000-01-01", auto.assign=FALSE)
volatility(Get, calc="close")

其他提示

noquote()不是答案。相反,您想要 get(). 。以下示例有效,尽管您可能想将变量名称更改为 getGet会感到困惑。

require(quantmod)

vClose = function(X){
Get <- getSymbols(X, from="2000-01-01", src="yahoo")
volatility(get(Get), calc="close")
}

vClose("SPY")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top