Вот коды, которые я использую
library(quantmod)
library(timetk)
library(dplyr)
library(tibble)
library(tidyr)
mdate <- "2015-10-30"
edate <- "2016-01-05"
tickers <- c("ABG","ACH","ADM","AEG","AEM","AGQ","AGRO","AKOb","APO")
data <- do.call(cbind.data.frame, lapply(tickers, function(x)
getSymbols(x, from = mdate, to = edate, auto.assign = F)))
# Transpose data.frame:
td_data <- within(data.frame(price_var = row.names(t(data)), t(data), row.names = NULL),
{
ticker_cd <- as.factor(gsub("[.].*", "", price_var))
price_var <- as.factor(gsub(".*[.]", "", price_var))
}
)
# Reshape:
abc <- do.call("cbind", split(td_data, td_data$price_var))
Когда я их запустил, я получил:
Ошибка в data.frame (..., check.names = FALSE): arguments подразумевают разное количество строк: 44, 38 Дополнительно: Предупреждение: AKOb содержит пропущенные значения. Некоторые функции не будут работать, если объекты содержат пропущенные значения в середине ряда. Рассмотрите возможность использования na.omit (), na.approx (), na.fill (), et c, чтобы удалить или заменить их.
Я обнаружил, что эта ошибка была вызвана «AKOB». Данные за первый и шестой дни пустые, поэтому первый день «AKOB» начался 9 ноября 2015 года, что отличается от других биржевых данных. Я нашел способ бегать по одному и сравнивать их различия. Когда бы это ни происходило, это очень неэффективный способ.
Я хочу пропустить, если у акции нет данных в моих настройках (с даты начала до даты окончания) Как я могу это сделать?