2012-05-21 2 views
3

Не уверен, что я делаю неправильно здесь. Я запускаю следующий код в R:Использование R, пакета прогноза Hyndman и quantmod

require(quantmod) 
require(forecast) 
getSymbols('FAGIX', from='2001-01-06', to=Sys.Date()) 
y <-Ad(FAGIX) 
plot(forecast(y)) 

Кажется, что частично работает, но я получаю предупреждающее сообщение. Кроме того, сюжет больше не показывает даты. Вероятно, здесь есть простое решение, но я этого не вижу.

Предупреждение Сообщение: В случае (класс (у) == "data.frame" | класс (у) == "список" | класс (у) ==: условие имеет длину> 1, и только первый элемент будет использоваться

ответ

3

предупреждения потому, что класс объекта XTS является вектор а два элемента символа (c("xts","zoo")) и функция ets, которая в конечном счете вызывается неявно предполагает, класс объекта, переданный ему будет только класс одного элемента.

Что-то вроде этого может быть немного более прочным:

any(class(y) %in% c("data.frame","list","matrix","mts")) 

Независимо от этого, вы можете смело игнорировать предупреждение в этом случае, так как проверка заключается в проверке того, является ли объект одномерным временным рядом, что и есть в вашем примере.

+0

Но сюжет больше не показывает даты. Если я рисую «y», я вижу даты по оси x. Если я планирую прогноз (y), я получаю только номер индекса. – user1408304

+1

'прогноз (y)' не возвращает объект xts. Вам нужно будет создать объект xts из вывода 'прогноз (y)' или вызвать 'plot.xts' напрямую. –

Смежные вопросы