Как исправить «количество заменяемых элементов не кратно длине замены» при использовании ежедневных данных из Yahoo Finance? - PullRequest
0 голосов
/ 04 января 2019

Я очень плохо знаком с R. Я получаю код ошибки следующим образом:

Error in data.mat.d[, i] <- i.prices : number of items to replace is not a multiple of replacement length` 

Я скачал финансовую ежедневную доходность для 50 портфельных компаний из Yahoo! Финансирование с использованием функции «for» и «get.hist.quotes» из пакета tseries. Похоже, что данные Yahoo для первой компании не вписываются в матрицу «data.mat.d» (матрица данных ежедневно).

Я попытался изменить диапазон дат для матрицы и функции, получающей данные из Yahoo. Однако я не уверен, какие у меня есть варианты.

time.period.d <- seq(as.Date("2000/2/1"), as.Date("2018/12/31"), "months")
N <- length(sector.codes)
T.d <- length(time.period.d)
data.mat.d <- matrix(0, nrow = T.d, ncol = N)
dimnames(data.mat.d) <- list(time.period.d, sector.codes)

for(i in sector.codes) {
 i.prices <- get.hist.quote(instrument = i, start = "2000/2/1", end = "2018/12/31", 
                         quote = "AdjClose", provider = "yahoo", origin = "1970/01/01",
                         compression = "d", retclass = "zoo")
 index(i.prices) <- as.yearmon(index(i.prices))
 data.mat.d[ , i] <- i.prices
}

Я ожидаю, что он извлечет необходимые данные и введет в матрицу без ошибок (как показано выше), так же, как мы выполнили работу для наших ежемесячных данных.

...