【发布时间】:2019-04-19 12:35:41
【问题描述】:
我喜欢找到可以从这样的面板数据集中的回报列计算不同持有期回报的代码(其中最后两列是所需的输出)
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 = ))
但找不到我如何构建与返回函数的持有期相关的代码。你能在这方面帮助我吗?
【问题讨论】:
-
ret_1 和 ret_2 是所需的输出
-
我已经编辑了问题@Cettt
-
您能解释一下
ret2和ret3使用数据中的实际值的计算吗? -
[(1+.5)*(1+.6)]-1=1.4 @RonakShah
-
[(1+.5)*(1+.6)*(1+.4)]-1=2.36 = ret_3 @RonakShah