Код ниже поможет вам начать.Нет необходимости в отдельной среде, просто храните все в списке и используйте функции применения, которые помогут вам перебрать все данные.Для данных месячного возврата необходимо указать что-то вроде того, что у меня ниже, например «2017-09-18 ::» или «2017-09 ::».Для расчета месячной доходности будут приниматься все данные за месяц, независимо от того, находится ли ваша начальная дата в середине месяца.
library(quantmod)
# stocklist with 1 bad stock
stocks <- c("MSFT", "MSFT2", "GIS")
# Get the data and name the list objects
stock_data <- lapply(stocks, function(x) try(getSymbols(x, src ='yahoo', auto.assign = FALSE)))
names(stock_data) <- stocks
# Show which stocks don't have any data
which(sapply(stock_data, is.character) == T)
MSFT2
2
# remove stocks that don't return any data.
stock_data <- stock_data[!sapply(stock_data, is.character)]
# One Year ago
monthly_return_data <- lapply(stock_data, function(x) monthlyReturn(x, subset = "2017-09-18::"))
В целях обеспечения качества данных вы можете проверить исходный код или Alphavantage (API).ключи нужны).Yahoo не всегда имеет правильные данные.