Парсинг кавычек в приложении R: Quantmod - PullRequest
5 голосов
/ 23 июля 2011

Я пытаюсь создать функцию, которая обеспечивает историческую волатильность после получения символа от Yahoo. Однако, когда я передаю вывод в функцию волатильности, это не нравится; Переменной Get присваивается вектор с кавычками, например, «SPY», но функция волатильности принимает только без кавычек (SPY нет «SPY»). Я пытаюсь снять кавычки с помощью noquote () и теперь получаю следующую ошибку:

Ошибка в журнале (x): нечисловой аргумент математической функции

Мой код

require(quantmod)

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

Любая помощь будет великолепна.

Ответы [ 2 ]

2 голосов
/ 23 июля 2011

noquote() не является ответом.Вместо этого вы хотите get().Следующий пример работает, хотя вы можете изменить имена переменных, так как get и Get могут запутаться.

require(quantmod)

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

vClose("SPY")
1 голос
/ 23 июля 2011

Просто установите auto.assign=FALSE в своем вызове на getSymbols:

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