применить задержку на данных xts от yahoo не работает

Я пытаюсь применить лаг к данным xts, но почему-то не хочет работать!

library(quantmod)
mystock <- c("GOOG")
getSymbols(mystock, src = "yahoo", from = "2020-01-01", to = "2021-01-01")
Google <- (GOOG)

Google <- subset(GOOG, select = GOOG.Adjusted)

googlets <- ts(Google)
head(googlets)

window5 <- data.frame(x5=Lag(googlets,5), x4=Lag(googlets,4), x3=Lag(googlets,3), 
                      x2=Lag(googlets,2), x1=Lag(googlets,1), googlets)
names(window5) <- c('x5','x4','x3', 'x2', 'x1', 'x')
window5

Я могу применить задержку данных перед преобразованием в ts. Результаты показывают число без задержки в каждой строке.

может кто-нибудь указать мне направление, пожалуйста


r lag
person unaied    schedule 26.02.2021    source источник
comment
Пожалуйста, всегда предоставляйте library вызовов, как указано в информации тега R, на этот раз я вам помог.   -  person jay.sf    schedule 26.02.2021


Ответы (2)


Использование cbind работает!

window5 <- cbind(x5=Lag(googlets,5), x4=Lag(googlets,4), x3=Lag(googlets,3), 
                 x2=Lag(googlets,2), x1=Lag(googlets,1), googlets)
colnames(window5) <- c('x5','x4','x3', 'x2', 'x1', 'x')
head(window5)
#           x5      x4      x3      x2      x1       x
# [1,] 1367.37      NA      NA      NA      NA      NA
# [2,] 1360.66 1367.37      NA      NA      NA      NA
# [3,] 1394.21 1360.66 1367.37      NA      NA      NA
# [4,] 1393.34 1394.21 1360.66 1367.37      NA      NA
# [5,] 1404.32 1393.34 1394.21 1360.66 1367.37      NA
# [6,] 1419.83 1404.32 1393.34 1394.21 1360.66 1367.37
person jay.sf    schedule 26.02.2021

Похоже, вы хотите взять Скорректированное закрытие, удалить времена, выполнить несколько задержек и преобразовать в ts. Это можно сделать в одной строке с помощью Ad, которое выберет столбец «Скорректировано» и вектор лагов, которые Lag поддерживает с объектами зоопарка. Также обратите внимание, что мы изменили нестандартный порядок столбцов, используемый в вопросе, но если вы все равно хотите, используйте 5: 0 вместо 0: 5.

ts(Lag(zoo(Ad(GOOG)), 0:5))

или по трубопроводу:

library(magrittr)
GOOG %>% Ad %>% zoo %>% Lag(0:5) %>% ts
person G. Grothendieck    schedule 26.02.2021