У меня есть большой фрейм данных crsp
, который содержит несколько столбцов ежедневных данных о запасах.Для этого вопроса важны следующие столбцы (небольшая выдержка, чтобы дать вам представление):
PERMNO date monthyear PRC RET
10001 1990-01-02 199001 10.1250 0.0000
10001 1990-01-03 199001 10.0000 -0.0123
...
10001 1990-02-01 199002 10.0000 0.0000
10001 1990-02-02 199002 10.0625 0.0062
...
10002 1990-01-02 199001 6.1250 0.0000
10002 1990-01-03 199001 6.2000 0.0122
...
10002 1990-02-01 199002 6.2500 0.0000
10002 1990-02-02 199002 6.5000 0.0400
...
"PERMNO"
- идентификатор акции, "date"
фактическая дата, "monthyear"
- месяц, "PRC"
- это цена, а "RET"
- дневной доход.
Я пытаюсь добавить новый столбец "MonthlyReturn"
, в котором указан ежемесячный доход для каждой акции.Поэтому значение следует рассчитывать для каждого месяца каждого запаса (сгруппированного по PERMNO).
Насколько мне известно, для этого могут быть две возможности:
- Рассчитатьежемесячный доход путем деления последней цены каждого месяца каждой акции на первую цену месяца (осторожно: из-за выходных первый торговый день месяца не обязательно является фактическим 1-м днем месяца)
- Преобразуйте существующие дневные доходы в ежемесячные.
В любом случае, я стремлюсь к следующему результату:
PERMNO date monthyear PRC RET MonthlyReturn
10001 1990-01-02 199001 10.1250 0.0000 0.1000
10001 1990-01-03 199001 10.0000 -0.0123 0.1000
...
10001 1990-02-01 199002 10.0000 0.0000 0.0987
10001 1990-02-02 199002 10.0625 0.0062 0.0987
...
10002 1990-01-02 199001 6.1250 0.0000 -0.0034
10002 1990-01-03 199001 6.2000 0.0122 -0.0034
...
10002 1990-02-01 199002 6.2500 0.0000 0.2340
10002 1990-02-02 199002 6.5000 0.0400 0.2340
...
В ходе исследования я наткнулся на функцию monthReturn из QuantMod,может ли это быть полезным?
Любая помощь будет принята с благодарностью, так как я только начал изучать R. Также не стесняйтесь добавлять все, что может помочь мне улучшить пригодность этого вопроса для SO.