解析 R 中的引号:Quantmod 应用程序
我正在尝试创建在从雅虎获取符号后提供历史波动性的函数。然而,当我将输出传递给波动函数时,它不喜欢它; Get 变量被分配一个带有引号的向量,例如“SPY”,但波动率函数只接受不带引号的向量(SPY 没有“SPY”)。我尝试使用 noquote() 去掉引号,现在出现以下错误:
Log(x) 中的错误:数学函数的非数字参数
我的代码
require(quantmod)
vClose = function(X){
Get <- getSymbols(X, from="2000-01-01", src="yahoo")
Set <- noquote(Get)
volatility(Set, calc="close")
}
任何帮助都会很棒。
I'm trying to create function that provides historical volatility after getting symbol from Yahoo. However, when I pass output to volatility function it doesn't like it; The Get variable gets assigned a vector with quotes, e.g. "SPY", but the volatility function only takes without quotes (SPY no "SPY"). I try to take quotes off using noquote() and now get following error:
Error in log(x) : Non-numeric argument to mathematical function
My code
require(quantmod)
vClose = function(X){
Get <- getSymbols(X, from="2000-01-01", src="yahoo")
Set <- noquote(Get)
volatility(Set, calc="close")
}
Any help would be great.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
只需在对
getSymbols
的调用中设置auto.assign=FALSE
即可:Just set
auto.assign=FALSE
in your call togetSymbols
:noquote()
不是答案。相反,您需要get()
。以下示例有效,但您可能希望更改变量名称,因为get
和Get
可能会混淆。noquote()
is not the answer. Instead you wantget()
. The following example works, though you might want to change the variable names asget
andGet
can get confused.