Вопрос

Я пытаюсь создать функцию, которая обеспечивает историческую волатильность после получения символа от 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(). Анкет Следующий пример работает, хотя вы, возможно, захотите изменить имена переменных как getа также Getможет запутаться.

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