Техника, которая работает с одной из форм очистки веб-страниц в R, может не работать с другими типами веб-сайтов. Доступ к данным с финансовых веб-сайтов является тому примером. Вот где знание лучшего пакета R для конкретной проблемы неоценимо.
Можно использовать пакет quantmod
для доступа к данным из Yahoo Finance. Используя биржевую биржу из OP, вот пример того, как использовать quantmod
для доступа к данным 2018 года для Nasdaq Composite Stock Index.
library(quantmod)
from.dat <- as.Date("01/01/18",format="%m/%d/%y")
to.dat <- as.Date("12/31/18",format="%m/%d/%y")
# access 2018 data for the Nasdaq Composite Index
getSymbols("^IXIC",from=from.dat,to=to.dat,src="yahoo")
head(IXIC)
... и результаты:
> head(IXIC)
IXIC.Open IXIC.High IXIC.Low IXIC.Close IXIC.Volume IXIC.Adjusted
2018-01-02 6937.65 7006.91 6924.08 7006.90 1914930000 7006.90
2018-01-03 7017.07 7069.15 7016.70 7065.53 2166780000 7065.53
2018-01-04 7089.50 7098.05 7072.38 7077.91 2098890000 7077.91
2018-01-05 7105.74 7137.04 7097.08 7136.56 2020900000 7136.56
2018-01-08 7135.38 7161.35 7124.09 7157.39 2051430000 7157.39
2018-01-09 7174.19 7181.14 7148.30 7163.58 2107300000 7163.58
>
Обратите внимание, что quantmod
не требует учетных данных или файлов cookie для доступа к данным из Yahoo Finance.
Получение списка биржевых символов
Отвечая на комментарий к моему ответу, вот код, который позволит обрабатывать список биржевых тикеров в функции apply()
.
tickers <- c("^IXIC","GOOG","IBM")
# get a list of symbols
tickerList <- lapply(tickers,function(x){
message(paste("getting symbol:",x))
aName <- getSymbols(x,from=from.dat,to=to.dat,src="yahoo")
assign(aName,get(aName),envir = .GlobalEnv) # assign to global env
aName
})
После завершения lapply()
можно наблюдать структуры данных xts
в средстве просмотра среды RStudio, как показано на следующем снимке экрана.