Мне нравится находить коды, которые могут вычислять различный возврат периода удержания из столбца возврата в наборе данных панели, подобном этому (где последние два столбца являются желаемым выходом)
Date Firms ret ret_2 ret_3
5/1/1988 A 0.5
6/1/1988 A 0.6 1.4
7/1/1988 A 0.4 1.24 2.36
8/1/1988 A 0.5 1.1 2.36
9/1/1988 A 0.6 1.4 2.36
11/1/1988 A 0.6 1.56 2.84
12/1/1988 A 0.4 1.24 2.584
13/01/1988 A 0.5 1.1 2.36
14/01/1988 A 0.6 1.4 2.36
15/01/1988 A 0.5 1.4 2.6
16/01/1988 A 0.6 1.4 2.84
18/01/1988 A 0.6 1.56 2.84
19/01/1988 A 0.4 1.24 2.584
20/01/1988 A 0.5 1.1 2.36
21/01/1988 A 0.6 1.4 2.36
22/01/1988 A 0.4 1.24 2.36
23/01/1988 A 0.5 1.1 2.36
25/01/1988 A 0.6 1.4 2.36
26/01/1988 A 0.5 1.4 2.6
27/01/1988 A 0.6 1.4 2.84
28/01/1988 A 0.5 1.4 2.6
29/01/1988 A 0.6 1.4 2.84
5/1/1988 B 0.5 1.4 2.6
6/1/1988 B 0.6 1.4 2.84
7/1/1988 B 0.6 1.56 2.84
8/1/1988 B 0.4 1.24 2.584
9/1/1988 B 0.5 1.1 2.36
11/1/1988 B 0.6 1.4 2.36
12/1/1988 B 0.6 1.56 2.84
13/01/1988 B 0.4 1.24 2.584
14/01/1988 B 0.5 1.1 2.36
15/01/1988 B 0.4 1.1 1.94
16/01/1988 B 0.5 1.1 2.15
18/01/1988 B 0.6 1.4 2.36
19/01/1988 B 0.4 1.24 2.36
20/01/1988 B 0.5 1.1 2.36
21/01/1988 B 0.5 1.25 2.15
22/01/1988 B 0.6 1.4 2.6
23/01/1988 B 0.6 1.56 2.84
25/01/1988 B 0.4 1.24 2.584
26/01/1988 B 0.5 1.1 2.36
27/01/1988 B 0.6 1.4 2.36
28/01/1988 B 0.4 1.24 2.36
29/01/1988 B 0.5 1.1 2.36
Здесь
ret_2= [(1 + r1) x (1 + r2)]-1, ret_3= [(1 + r1) x (1 + r2) x (1 + r3)]-1
r1 - возвращение первого периода, r2 - возвращение второго периода
Я пытался использовать этот вид кода
library(dplyr)
library(lubridate)
df %>%
group_by(date = format(dmy(Date), '%b-%y'), firms) %>%
summarise(ret2 = ))
Но не могу найти, как я строю кодсвязанные с периодом удержания функции возврата.не могли бы вы помочь мне в этом отношении.