У меня есть более 300 компаний и вам нужно рассчитать месячный доход для них, а затем использовать его как одну из переменных в моем наборе данных. загрузить цены от Yahoo и рассчитывается ежемесячный возврат используя quantmod пакет:monthReturn и unequal month length
require(quantmod)
stockData <- lapply(symbols,function(x) getSymbols(x,auto.assign=FALSE, src='yahoo', from = '2000-01-01'))
stockDataReturn <- lapply(stockData,function(x) monthlyReturn(Ad(x)))
У меня есть проблема в том, что некоторые компании имеют разные цели в месяц (за счет торговли останавливается, и т.д.), которая находит свое отражение в списке вывода: 2013-12-30 для компании AAA и 2013-12-31 для компании BBB и остальной выборки.
Когда я сливаю список с помощью
returns <- do.call(merge.xts, stockDataReturn)
Это создает отдельную строку для 2013-12-30 со всеми для AAA ВПЛ компании, за исключением. Как я могу это решить? Я понимаю, что мне нужно будет придерживаться формата месяца в год, который мне нужно использовать в качестве индекса, прежде чем слить.
В идеале, я хочу, чтобы на этапе monthReturn он использовал начало месяца, а не конец месяца.
Спасибо! это сработало! – m45ha
Это очень полезно. Как мы получаем последний день месяца? 'ceiling_date (index (x)," month ") -1'? –
@ R.S. Да, который может работать с объектами даты в векторе индекса, но более безопасный подход, который работает с объектами POSIXct в векторе индекса, - это 'index (x) <- ceiling_date (index (x)," month ") - days (1) ' – FXQuantTrader