Это вопрос новичков в R. Я загружаю ежемесячные данные о ценах на деньги yahoo, используя R, где имена тикеров читаются из текстового файла. Я использую цикл, чтобы читать имена тикеров, чтобы загрузить данные и помещать их в список. Моя проблема в том, что некоторые имена тикеров могут быть неверными, поэтому мой код останавливается, когда он сталкивается с этим случаем. Я хочу следующее.
- пропустите имя тикера, если оно неверно.
- Каждый элемент в списке является фреймворком данных. Я хочу, чтобы имена тикеров добавлялись к именам переменных в элементарных кадрах элементов.
- Мне нужен эффективный способ создания фрейма данных, который имеет цены закрытия как переменные.
Вот пример кода для упрощенной версии моей проблемы.
library(tseries)
tckk <- c("MSFT", "C", "VIA/B", "MMM") # ticker names defined
numtk <- length(tckk);
ustart <- "2000-12-30";
uend <- "2007-12-30" # start and end date
all_dat <- list(); # empty list to fill in the data
for(i in 1:numtk)
{
all_dat[[i]] <- xxx <- get.hist.quote(instrument = tckk[i], start=ustart, end=uend, quote = c("Open", "High", "Low", "Close"), provider = "yahoo", compression = "m")
}
Код останавливается в третьей записи, но я хочу пропустить этот тикер и перейти к "МММ". Я слышал о функции Trycatch(), но не знаю, как ее использовать.
В соответствии с вопросом 2, я хочу, чтобы имена переменных для первого элемента списка были "MSFTopen", "MSFThigh", "MSFTlow" и "MSFTclose". Есть ли лучший способ сделать это, кроме использования комбинации функций loop и paste().
Наконец, для вопроса 3 мне нужен фрейм данных с тремя столбцами, соответствующими ценам закрытия. Опять же, я пытаюсь избежать цикла здесь.
Спасибо.